Indexer (C#-Programmierhandbuch)

Aktualisiert: November 2007

Indexer ermöglichen das Indizieren von Instanzen einer Klasse oder Struktur auf dieselbe Weise wie Arrays. Abgesehen davon, dass ihre Accessoren Parameter akzeptieren, sind Indexer mit Eigenschaften vergleichbar.

Im folgenden Beispiel wird eine generische Klasse definiert, die mit einfachen get-Accessormethoden und set-Accessormethoden ausgestattet ist. Mit diesen Methoden werden Werte zugewiesen und abgerufen. Die Program-Klasse erstellt eine Instanz dieser Klasse für das Speichern von Zeichenfolgen.

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]);
    }
}

Übersicht über Indexer

  • Durch Indexer können Objekte auf ähnliche Weise wie Arrays indiziert werden.

  • Ein get-Accessor gibt einen Wert zurück. Ein set-Accessor weist einen Wert zu.

  • Das this-Schlüsselwort wird zum Definieren der Indexer verwendet.

  • Mithilfe des value-Schlüsselworts wird der Wert definiert, der vom set-Indexer zugewiesen wird.

  • Indexer müssen nicht mit ganzzahligen Werten indiziert werden. Sie können frei wählen, wie Sie den bestimmten Suchmechanismus definieren.

  • Indexer können überladen werden.

  • Indexer können mehr als einen formalen Parameter haben, z. B. wenn auf ein zweidimensionales Array zugegriffen wird.

Verwandte Abschnitte

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 1.6.7.3 Indexer

  • 10.2.9.3 Für Indexer reservierte Membernamen

  • 10,9 Indexer

  • 13.2.4 Schnittstellenindexer

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

Eigenschaften (C#-Programmierhandbuch)