C#索引指示器怎么使用

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

成都创新互联凭借专业的设计团队扎实的技术支持、优质高效的服务意识和丰厚的资源优势,提供专业的网站策划、网站建设、成都网站制作、网站优化、软件开发、网站改版等服务,在成都10年的网站建设设计经验,为成都上千余家中小型企业策划设计了网站。

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#索引指示器怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


新闻标题:C#索引指示器怎么使用
标题URL:http://csdahua.cn/article/iiehjc.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流