多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > C#學習日記28---索引器、重載索引器

C#學習日記28---索引器、重載索引器

來源:程序員人生   發布時間:2016-05-04 15:36:10 閱讀次數:2418次

        索引器允許類或結構的實例就像數組1樣進行索引,當您為1個類定義1個索引器時,這個類就會像1個數組1樣,您可使用數組訪問符 '[]' 對該類的實例進行訪問.. 索引器與 屬性  類似,但是索引器要采取參數,(也能夠這么認為,索引器是1個類的屬性,一樣也是通過訪問器(1種特殊的方法) 實現的)

    為了更清楚1點,還是舉個例子吧,  大學是人生中最悠閑的時光,同學們可以做許多自己曾想做而由于種種緣由沒有做的事,逃課很明顯正是其中之1..為了制止逃課的行動,每次上課的時候老師都要點名或是點學號,我是4班的,老師喜歡點學號,"4班1號" 然后下面大聲答"到……",“4班2號”,“到”,“4班3號”...... "3號。。3號同學。。",“老師HC666今天肚子疼上醫院了”中國好室友阿^_^),“哦,4號”..... 老師點名就是對4班的1個索引。

     如果將class4看做是由Classes類實例化的1個對象,class[1]就是對1號同學的索引,(想想數組就明白了)那怎樣實現呢?

定義索引器:

         上面也說了,索引器與屬性類似,自然也少不了get,set訪問器了,索引器也是類的成員,自然也得在類里面定義了,以下:

        public 返回值類型 this[參數類型 參數]  

             {

                                 get { return 參數指定的值;   }    //get訪問器

                    set {  /*設置參數指定的值 */    }     //set訪問器

            }

 

索引器的實例:

          我們將上面的例子代碼化,以下:

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test1 {//定義1個能被索引的類 class Classes {//對類的索引實質是對類中數組的索引 public string[] StudentName=new string[6]; //定義索引器 public string this[int ID] { get { return StudentName[ID]; } set { StudentName[ID] = value; } //set訪問器自帶value參數 } } class Program { static void Main(string[] args) { Classes class4 = new Classes(); //索引寫入 for (int i = 1; i < 6; i++) { class4[i] = "HC"+i; } //索引讀出 for (int j = 1; j < 6; j++) { Console.WriteLine(j+"號 "+class4[j]); } } } }


結果:

 

 

重載索引器:

         上面的程序中,我們實現了通過學號索引出該學生姓名,那怎樣實現通過姓名索引出學號呢?我們將索引看做是1個特殊的方法,方法可以利用重載實現不同的參數相同的功能,那末索引器自然也能夠重載。用法與方法重載類似,(查看方法重載點這里),我們還是接著上面的例子,這次要滿足使用姓名索引出學號:

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test1 {//定義1個能被索引的類 class Classes {//對類的索引實質是對類中數組的索引 public string[] StudentName=new string[6]; //定義索引器 public string this[int ID] { get { return StudentName[ID]; } set { StudentName[ID] = value; } //set訪問器自帶value參數 } //重載索引器參數設為string類型 public uint this[string name] { get { //找到與name匹配的學號 uint index=1; while (StudentName[index] != name && index < 6) { index++; } return index; } set { } } } class Program { static void Main(string[] args) { Classes class4 = new Classes(); //索引寫入 for (int i = 1; i < 6; i++) { class4[i] = "HC"+i; } //索引讀出,通過學號索引出姓名 for (int j = 1; j < 6; j++) { Console.WriteLine(j+"號 "+class4[j]); } //通過姓名索引出學號 for (int k = 1; k < 6; k++) { string name="HC"+k; Console.WriteLine(name+" "+class4[name]+"號");//對照上面用法1樣參數不1樣 } } } }


結果:

 

 

      上面中我們說了當1個類定義了索引器就能夠將這個類當作數組1樣看待,那在學習 數組 的時候知道,數組有多維度的,索引器所在的類呢??我們遍歷數組用的foreach遍歷語句對這個類也能用嗎??我下1篇再作介紹吧!!(由于學校要短電了……)希望您繼續支持HC666^_^

 

 

 

     您的建議與評論是我完善自我的動力,感謝您的瀏覽,有毛病的地方歡迎指出來或私信我^_^

 

 

版權聲明:本文為博主原創文章,未經博主允許不得轉載。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美成人做性视频在线播放 | 亚洲色图吧| 最近中文字幕经典版在线 | 亚洲国产视频在线观看 | 国产精品永久免费视频观看 | 亚洲精品免费在线观看 | 亚洲精品一区二区三区四区五区 | 精品第一页 | 久久久久爽亚洲精品 | 欧美日韩在线第一页 | 黄色网址大全免费 | 99视频精品全部免费免费观 | 国产乱视频在线观看播放 | 国产成人啪精品午夜小说 | 69视频在线是免费观看 | 国产高清精品一级毛片 | 一区二区三区免费视频网站 | 亚洲欧美久久精品一区 | 综合自拍亚洲综合图区美腿丝袜 | 亚洲五月七月丁香缴情 | 正在播放国产露脸做91 | 偷自拍第一页 | jizz亚洲日本jizz | 日本欧美一区二区三区在线观看 | a免费毛片在线播放 | 一区二区高清视频 | 亚洲黄色免费在线观看 | 国产人成精品综合欧美成人 | 九九精品免费观看在线 | 国产精品精品 | 欧美精品国产一区二区三区 | 一二三四在线观看免费中文在线观看 | 国产福利观看 | 色77777| 欧美日本韩国一区二区 | 伊人剧场| 亚洲精品国产经典一区二区 | 一区二区久久 | 另类天堂网 | 亚洲春色在线观看 | 日本成人在线免费 |