Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch
Es wird empfohlen, Visual Studio 2017 zu verwenden
Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

Indexer (C#-Programmierhandbuch)

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>
{
    // Declare an array to store the data elements.
    private T[] arr = new T[100];

    // Define the indexer, which will allow client code
    // to use [] notation on the class instance itself.
    // (See line 2 of code in Main below.)        
    public T this[int i]
    {
        get
        {
            // This indexer is very simple, and just returns or sets
            // the corresponding element from the internal array.
            return arr[i];
        }
        set
        {
            arr[i] = value;
        }
    }
}

// This class shows how client code uses the indexer.
class Program
{
    static void Main(string[] args)
    {
        // Declare an instance of the SampleCollection type.
        SampleCollection<string> stringCollection = new SampleCollection<string>();

        // Use [] notation on the type.
        stringCollection[0] = "Hello, World";
        System.Console.WriteLine(stringCollection[0]);
    }
}


  • 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 den Suchmechanismus frei definieren.

  • Indexer können überladen werden.

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

Weitere Informationen finden Sie in der C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Anzeigen: