3 回答

TA貢獻1801條經驗 獲得超8個贊
一般來講,實現了索引器的類都是集合類或包含有集合類。索引器可以讓你方便的引用這個集合中的數據。
索引器無需聲明,在聲明了索引器的類上可以直接使用。
索引器跟數組的區別主要在
索引器的索引值(Index)類型不一定為整數
用來訪問數組的索引值(Index),其類型一定為整數,然而索引器可以定義其他類型的索引值。
索引器允許重載(Overloading)
一個類并不限制只能夠定義一個索引器,只要索引器的函數簽名不同,一個類就可以擁有很多個索引器,你可以重載它的功能。
索引器不是一個變量
索引和數組不同的地方在于,索引器并沒有直接對應引用數據存儲的地方,而數組則有。索引器有get訪問器與set訪問器,用來指明要讀取或寫入索引器元素時,需要執行的代碼。
在你的例子中,MyClass 內部有一個int數組或集合,你使用的索引實際上是去引用了內部集合類的。

TA貢獻1804條經驗 獲得超7個贊
索引器是class或struct的屬性方法。通過索引器,可以像數組一樣,使用實例內部的數據。
以下的類定義了一個索引器(Indexer)
public class MyClass
{
private int[] innerData;
public MyClass()
{
this.innerData = new int[100];
}
//索引器 Indexer
public int this[int index]
{
get{ return this.innerData[index];}
set{ this.innerData[index] = value;}
}
}
實例化MyClass
MyClass my=new MyClass();
通過索引器給賦值
my[0]=123;
my[1]=456;
my[2]=789
從類定義可知,123被放到實例內部的innerData[0],456存放到了innerData[1]……依次類推。

TA貢獻1799條經驗 獲得超8個贊
屬性用于以可驗證的方式訪問私有成員變量。索引器用于以更便捷的方式訪問對象中包含的成員數組或集合。
區別:
1、屬性名可自定義,索引器必須以this命名。
2、屬性可以為實例或靜態,索引器必須是實例的。
3、索引器有索引參數列表,而屬性沒有。
- 3 回答
- 0 關注
- 795 瀏覽
添加回答
舉報