您好,登錄后才能下訂單哦!
這篇文章主要介紹“C#索引器的用法”,在日常操作中,相信很多人在C#索引器的用法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C#索引器的用法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
簡單說來,所謂C#索引器就是一類特殊的屬性,通過它們你就可以像引用數組一樣引用自己的類。聲明方法如下(與屬性相似):
public type this [int index] { get { //... } set { //... } }
用例子簡單說明:
using System.Collections; static void Main(string[] args) { //調用IntBits.IntBits方法,意為將63賦給bits IntBits bits = new IntBits(63); //獲得索引6的bool值,此時 bits[6]將調用索引器"public bool this[int index]"中的Get,值為True bool peek = bits[6]; Console.WriteLine("bits[6] Value: {0}",peek); bits[0] = true; Console.WriteLine(); Console.ReadKey(); } struct IntBits { private int bits; public IntBits(int initialBitValue) { bits = initialBitValue; Console.WriteLine(bits); } //定義索引器 //索引器的“屬性名”是this,意思是回引類的當前實例,參數列表包含在方括號而非括號之內。 public bool this [int index] { get { return true; } set { if (value) { bits = 100; } } }
備注:
所有C#索引器都使用this關鍵詞來取代方法名。Class或Struct只允許定義一個索引器,而且總是命名為this。
索引器允許類或結構的實例按照與數組相同的方式進行索引。索引器類似于屬性,不同之處在于它們的訪問器采用參數。
◆get 訪問器返回值。set 訪問器分配值。
◆this 關鍵字用于定義索引器。
◆value 關鍵字用于定義由 set 索引器分配的值。
索引器不必根據整數值進行索引,由您決定如何定義特定的查找機制。索引器可被重載。 索引器可以有多個形參,例如當訪問二維數組時。索引器可以使用百數值下標,而數組只能使用整數下標:如下列定義一個String下標的索引器
public int this [string name] {...}
屬性和索引器
屬性和索引器之間有好些差別:
類的每一個屬性都必須擁有***的名稱,而類里定義的每一個C#索引器都必須擁有***的簽名(signature)或者參數列表(這樣就可以實現索引器重載)。 屬性可以是static(靜態的)而索引器則必須是實例成員。 為C#索引器定義的訪問函數可以訪問傳遞給索引器的參數,而屬性訪問函數則沒有參數。
到此,關于“C#索引器的用法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。