溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#索引指示器怎么使用

發(fā)布時(shí)間:2021-12-02 11:08:59 來(lái)源:億速云 閱讀:108 作者:iii 欄目:編程語(yǔ)言

這篇文章主要講解了“C#索引指示器怎么使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“C#索引指示器怎么使用”吧!

C#索引指示器并不難使用。它們的用法跟數(shù)組相同。在一個(gè)類內(nèi)部,你可以按照你的意愿來(lái)管理一組數(shù)據(jù)的集合。這些對(duì)象可以是類成員的有限集合,也可以是另外一個(gè)數(shù)組,或者是一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。不考慮類的內(nèi)部實(shí)現(xiàn),其數(shù)據(jù)可以通過(guò)使用C#索引指示器來(lái)獲得。

實(shí)現(xiàn)C#索引指示器(indexer)的類可以象數(shù)組那樣使用其實(shí)例后的對(duì)象,但與數(shù)組不同的是C#索引指示器的參數(shù)類型不僅限于int。簡(jiǎn)單來(lái)說(shuō),其本質(zhì)就是一個(gè)含參數(shù)屬性:

  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. //實(shí)現(xiàn)索引訪問(wèn)器  

  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/)的指點(diǎn)  

  46. //索引指示器的實(shí)質(zhì)是含參屬性,參數(shù)并不只限于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的標(biāo)準(zhǔn)寫法  

  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#索引指示器怎么使用”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)C#索引指示器怎么使用這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI