C# 索引器

2018-01-16 03:30 更新

C# 索引器

索引器提供了一個(gè)類(lèi)似數(shù)組的語(yǔ)法來(lái)訪問(wèn)類(lèi)或結(jié)構(gòu)中的元素。

索引器與屬性類(lèi)似,但可通過(guò)索引參數(shù)訪問(wèn),而不是屬性名稱(chēng)。

字符串類(lèi)有一個(gè)索引器,它允許您通過(guò)int索引訪問(wèn)其每個(gè)char值:


string s = "hello"; 
Console.WriteLine (s[0]); // "h" 
Console.WriteLine (s[3]); // "l" 

使用索引器的語(yǔ)法與使用數(shù)組的語(yǔ)法相似,除了index參數(shù)可以是任何類(lèi)型。

索引器具有與屬性相同的修飾符。


實(shí)現(xiàn)索引器

要編寫(xiě)索引器,請(qǐng)定義一個(gè)名為this的屬性,在方括號(hào)中指定參數(shù)。

例如:


class MyWord { 
   string[] words = "this is a test".Split(); 
   
   public string this [int wordNum] // indexer 
   { 
       get { 
           return words [wordNum]; 
       } 
       set { 
           words [wordNum] = value; 
       } 
   } 
} 

以下是我們?nèi)绾问褂么怂饕鳎?br />


MyWord s = new MyWord(); 
Console.WriteLine (s[3]);
s[3] = "CSS"; 
Console.WriteLine (s[3]); // CSS

類(lèi)型可以聲明多個(gè)索引器,每個(gè)索引器具有不同類(lèi)型的參數(shù)。

索引器也可以采用多個(gè)參數(shù):


public string this [int arg1, string arg2] {
    get { ... } set { ... } 
} 

如果省略set存取器,索引器將變?yōu)橹蛔x。



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)