官方描述:索引器允許類或結構的實例就像數組一樣進行索引。索引器形態類似於,不同之處在於它們的取值函數采用參數。
這一功能在創建集合類的場合特別有用,而在其他某些情況下,比如處理大型文件或者抽象有些資源等,能讓類具有類似數組行為也是非常有用的。
2. 區分
(1)索引器與數組的比較:
索引器的索引值不受類型限制。用來訪問數組的索引值一定是整數,而索引器可以是其他類型的索引值。
索引器允許重載,一個類可以有多個索引器。
索引器不是一個變量沒有直接對應的數據存儲地方。索引器有get和set訪問器。
索引器允許類和結構的實例按照與數組相同的方式進行索引,索引器類似與屬性,不同之處在於他們的訪問器采用參數。被稱為有參屬性。
(2)索引器與屬性的比較:
標示方式:屬性以名稱來標識,索引器以函數簽名來標識。
索引器可以被重載。屬性則不可以被重載。
屬性可以為靜態的,索引器屬於實例成員,不能被聲明為static
static void main(string[] args)
{
IndexClass indexClass = new IndexClass();
indexClass[0] = "王五";
indexClass[1] = "趙四";
}
Class IndexClass()
{
private string[] name = new string[10];
public string this[int index]
{
get {return name[index];}
set {name[index]=value;}
}
}