共用方式為


索引子 (C# 程式設計手冊)

更新:2007 年 11 月

索引子 (Indexer) 允許使用與陣列相同的方式來索引類別 (Class) 或結構 (Struct) 的執行個體。索引子除了其存取子 (Accessor) 會使用參數以外,其餘特性都與屬性相似。

在下列範例中,將定義一個泛型類別,並提供簡單的 getset 存取子方法來做為指派與擷取值的方式。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 介面索引子

請參閱

概念

C# 程式設計手冊

參考

屬性 (C# 程式設計手冊)