C#索引指示器怎么使用

发布时间:2021-12-02 11:08:59 作者:iii
来源:亿速云 阅读:94

这篇文章主要讲解了“C#索引指示器怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#索引指示器怎么使用”吧!

C#索引指示器并不难使用。它们的用法跟数组相同。在一个类内部,你可以按照你的意愿来管理一组数据的集合。这些对象可以是类成员的有限集合,也可以是另外一个数组,或者是一些复杂的数据结构。不考虑类的内部实现,其数据可以通过使用C#索引指示器来获得。

实现C#索引指示器(indexer)的类可以象数组那样使用其实例后的对象,但与数组不同的是C#索引指示器的参数类型不仅限于int。简单来说,其本质就是一个含参数属性:

  1. using System;  

  2. using System.Collections.Generic;  

  3. using System.Text;  

  4.    

  5. namespace Example08  

  6. {  

  7. public class Point  

  8. {  

  9. private double x, y;  

  10. public Point(double X, double Y)  

  11. {  

  12. x = X;  

  13. y = Y;  

  14. }  

  15. //重写ToString方法方便输出  

  16. public override string ToString()  

  17. {  

  18. return String.Format("X: {0} , Y: {1}", x, y);  

  19. }  

  20. }  

  21. public class Points  

  22. {  

  23. Point[] points;  

  24. public Points(Point[] Points)  

  25. {  

  26. points = Points;  

  27. }  

  28. public int PointNumber  

  29. {  

  30. get   

  31. {   

  32. return points.Length;   

  33. }  

  34. }  

  35. //实现索引访问器  

  36. public Point this[int Index]  

  37. {  

  38. get  

  39. {  

  40. return points[Index];  

  41. }  

  42. }  

  43. }  

  44.    

  45. //感谢watson hua(http://huazhihao.cnblogs.com/)的指点  

  46. //索引指示器的实质是含参属性,参数并不只限于int  

  47. class WeatherOfWeek  

  48. {  

  49. public string this[int Index]  

  50. {  

  51. get  

  52. {  

  53. //注意case段使用return直接返回所以不需要break  

  54. switch (Index)  

  55. {  

  56. case 0:  

  57. {  

  58. return "Today is cloudy!";  

  59. }  

  60. case 5:  

  61. {  

  62. return "Today is thundershower!";  

  63. }  

  64. default:  

  65. {  

  66. return "Today is fine!";  

  67. }  

  68. }  

  69. }  

  70. }  

  71. public string this[string Day]  

  72. {  

  73. get  

  74. {  

  75. string TodayWeather = null;  

  76. //switch的标准写法  

  77. switch (Day)  

  78. {  

  79. case "Sunday":  

  80. {  

  81. TodayWeather = "Today is cloudy!";  

  82. break;  

  83. }  

  84. case "Friday":  

  85. {  

  86. TodayWeather = "Today is thundershower!";  

  87. break;  

  88. }  

  89. default:  

  90. {  

  91. TodayWeather = "Today is fine!";  

  92. break;  

  93. }  

  94. }  

  95. return TodayWeather;  

  96. }  

  97. }  

  98. }  

  99. class Program  

  100. {  

  101. static void Main(string[] args)  

  102. {  

  103. Point[] tmpPoints = new Point[10];  

  104. for (int i = 0; i < tmpPoints.Length; i++)  

  105. {  

  106. tmpPoints[i] = new Point(i, Math.Sin(i));  

  107. }  

  108. Points tmpObj = new Points(tmpPoints);  

  109. for (int i = 0; i < tmpObj.PointNumber; i++)  

  110. {  

  111. Console.WriteLine(tmpObj[i]);  

  112. }  

  113. string[] Week = new string[] 
    { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Staurday"};  

  114. WeatherOfWeek tmpWeatherOfWeek = new WeatherOfWeek();  

  115. for (int i = 0; i < 6; i++)  

  116. {  

  117. Console.WriteLine(tmpWeatherOfWeek[i]);  

  118. }  

  119. foreach (string tmpDay in Week)  

  120. {  

  121. Console.WriteLine(tmpWeatherOfWeek[tmpDay]);  

  122. }  

  123. Console.ReadLine();  

  124. }  

  125. }  

感谢各位的阅读,以上就是“C#索引指示器怎么使用”的内容了,经过本文的学习后,相信大家对C#索引指示器怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. C#索引属性使用范例源码
  2. c#索引器

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:为什么要VB.NET开发控件

下一篇:tk.Mybatis插入数据获取Id怎么实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》