這篇文章主要介紹“C#索引器的用法”,在日常操作中,相信很多人在C#索引器的用法問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”C#索引器的用法”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
曲沃網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),曲沃網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為曲沃成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的曲沃做網(wǎng)站的公司定做!
簡(jiǎn)單說(shuō)來(lái),所謂C#索引器就是一類(lèi)特殊的屬性,通過(guò)它們你就可以像引用數(shù)組一樣引用自己的類(lèi)。聲明方法如下(與屬性相似):
public type this [int index] { get { //... } set { //... } }
用例子簡(jiǎn)單說(shuō)明:
using System.Collections; static void Main(string[] args) { //調(diào)用IntBits.IntBits方法,意為將63賦給bits IntBits bits = new IntBits(63); //獲得索引6的bool值,此時(shí) bits[6]將調(diào)用索引器"public bool this[int index]"中的Get,值為T(mén)rue 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,意思是回引類(lèi)的當(dāng)前實(shí)例,參數(shù)列表包含在方括號(hào)而非括號(hào)之內(nèi)。 public bool this [int index] { get { return true; } set { if (value) { bits = 100; } } }
備注:
所有C#索引器都使用this關(guān)鍵詞來(lái)取代方法名。Class或Struct只允許定義一個(gè)索引器,而且總是命名為this。
索引器允許類(lèi)或結(jié)構(gòu)的實(shí)例按照與數(shù)組相同的方式進(jìn)行索引。索引器類(lèi)似于屬性,不同之處在于它們的訪問(wèn)器采用參數(shù)。
◆get 訪問(wèn)器返回值。set 訪問(wèn)器分配值。
◆this 關(guān)鍵字用于定義索引器。
◆value 關(guān)鍵字用于定義由 set 索引器分配的值。
索引器不必根據(jù)整數(shù)值進(jìn)行索引,由您決定如何定義特定的查找機(jī)制。索引器可被重載。 索引器可以有多個(gè)形參,例如當(dāng)訪問(wèn)二維數(shù)組時(shí)。索引器可以使用百數(shù)值下標(biāo),而數(shù)組只能使用整數(shù)下標(biāo):如下列定義一個(gè)String下標(biāo)的索引器
public int this [string name] {...}
屬性和索引器
屬性和索引器之間有好些差別:
類(lèi)的每一個(gè)屬性都必須擁有***的名稱,而類(lèi)里定義的每一個(gè)C#索引器都必須擁有***的簽名(signature)或者參數(shù)列表(這樣就可以實(shí)現(xiàn)索引器重載)。 屬性可以是static(靜態(tài)的)而索引器則必須是實(shí)例成員。 為C#索引器定義的訪問(wèn)函數(shù)可以訪問(wèn)傳遞給索引器的參數(shù),而屬性訪問(wèn)函數(shù)則沒(méi)有參數(shù)。
到此,關(guān)于“C#索引器的用法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!