索引子 (C# 程式設計手冊)
更新:2007 年 11 月
索引子 (Indexer) 允許使用與陣列相同的方式來索引類別 (Class) 或結構 (Struct) 的執行個體。索引子除了其存取子 (Accessor) 會使用參數以外,其餘特性都與屬性相似。
在下列範例中,將定義一個泛型類別,並提供簡單的 get 與 set 存取子方法來做為指派與擷取值的方式。Program 類別會建立此類別的執行個體以儲存字串。
class SampleCollection<T>
{
private T[] arr = new T[100];
public T this[int i]
{
get
{
return arr[i];
}
set
{
arr[i] = value;
}
}
}
// This class shows how client code uses the indexer
class Program
{
static void Main(string[] args)
{
SampleCollection<string> stringCollection = new SampleCollection<string>();
stringCollection[0] = "Hello, World";
System.Console.WriteLine(stringCollection[0]);
}
}
索引子概觀
索引子可讓物件以類似於陣列的方式進行索引。
get 存取子會傳回一個值。set 存取子會指定一個值。
this 關鍵字的用途為定義索引子。
value 關鍵字是用來定義 set 索引子所指定的值。
索引子不需要以整數值來索引;您可以決定如何定義特定的查詢機制。
索引子可以多載。
索引子可以具有一個以上的型式參數,例如,在存取二維陣列時便是如此。
相關章節
C# 語言規格
如需詳細資料,請參閱 C# 語言規格中的下列章節:
1.6.7.3 索引子
10.2.9.3 保留給索引子的成員名稱
10.9 索引子
13.2.4 介面索引子