千家信息网

C#索引指示器怎么使用

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要讲解了"C#索引指示器怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C#索引指示器怎么使用"吧!C#索引指示器并不难使用。它们的用
千家信息网最后更新 2025年01月19日C#索引指示器怎么使用

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

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

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

  1. using System;

  2. using System.Collections.Generic;

  3. using System.Text;

  4. namespace Example08

  5. {

  6. public class Point

  7. {

  8. private double x, y;

  9. public Point(double X, double Y)

  10. {

  11. x = X;

  12. y = Y;

  13. }

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

  15. public override string ToString()

  16. {

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

  18. }

  19. }

  20. public class Points

  21. {

  22. Point[] points;

  23. public Points(Point[] Points)

  24. {

  25. points = Points;

  26. }

  27. public int PointNumber

  28. {

  29. get

  30. {

  31. return points.Length;

  32. }

  33. }

  34. //实现索引访问器

  35. public Point this[int Index]

  36. {

  37. get

  38. {

  39. return points[Index];

  40. }

  41. }

  42. }

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

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

  45. class WeatherOfWeek

  46. {

  47. public string this[int Index]

  48. {

  49. get

  50. {

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

  52. switch (Index)

  53. {

  54. case 0:

  55. {

  56. return "Today is cloudy!";

  57. }

  58. case 5:

  59. {

  60. return "Today is thundershower!";

  61. }

  62. default:

  63. {

  64. return "Today is fine!";

  65. }

  66. }

  67. }

  68. }

  69. public string this[string Day]

  70. {

  71. get

  72. {

  73. string TodayWeather = null;

  74. //switch的标准写法

  75. switch (Day)

  76. {

  77. case "Sunday":

  78. {

  79. TodayWeather = "Today is cloudy!";

  80. break;

  81. }

  82. case "Friday":

  83. {

  84. TodayWeather = "Today is thundershower!";

  85. break;

  86. }

  87. default:

  88. {

  89. TodayWeather = "Today is fine!";

  90. break;

  91. }

  92. }

  93. return TodayWeather;

  94. }

  95. }

  96. }

  97. class Program

  98. {

  99. static void Main(string[] args)

  100. {

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

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

  103. {

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

  105. }

  106. Points tmpObj = new Points(tmpPoints);

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

  108. {

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

  110. }

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

  112. WeatherOfWeek tmpWeatherOfWeek = new WeatherOfWeek();

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

  114. {

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

  116. }

  117. foreach (string tmpDay in Week)

  118. {

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

  120. }

  121. Console.ReadLine();

  122. }

  123. }

  124. }

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

0