Operator

Eckige Klammern ([]) werden für Arrays, Indexer und Attribute verwendet. Sie können auch mit Zeigern verwendet werden.

Hinweise

Auf einen Arraytyp folgt []:

int[] fib; // fib is of type int[], "array of int".
fib = new int[100]; // Create a 100-element int array.

Um auf ein Element eines Arrays zuzugreifen, wird der Index des gewünschten Elements in Klammern eingeschlossen:

fib[0] = fib[1] = 1;
for (int i = 2; i < 100; ++i) fib[i] = fib[i - 1] + fib[i - 2];

Eine Ausnahme wird ausgelöst, wenn ein Arrayindex außerhalb des gültigen Bereichs liegt.

Der Arrayindizierungsoperator kann nicht überladen werden. Allerdings können Typen Indexer definieren sowie Eigenschaften, die einen oder mehrere Parameter annehmen. Indexerparameter werden wie Arrayindizes in rechteckige Klammern eingeschlossen, können aber als beliebiger Typ deklariert werden, während Arrayindizes ganzzahlig sein müssen.

.NET Framework definiert z.B. einen Hashtable-Typ, der Schlüssel und Werte beliebigen Typs verknüpft:

System.Collections.Hashtable h = new System.Collections.Hashtable();
h["a"] = 123; // Note: using a string as the index.

Rechteckigen Klammern werden auch zum Angeben von Attributen verwendet:

// using System.Diagnostics;
[Conditional("DEBUG")] 
void TraceMethod() {}

Sie können rechteckige Klammern verwenden, um einen Zeiger zu referenzieren:

unsafe void M()
{
    int[] nums = {0,1,2,3,4,5};
    fixed ( int* p = nums )
    {
        p[0] = p[1] = 1;
        for( int i=2; i<100; ++i ) p[i] = p[i-1] + p[i-2];
    }
}

Es wird keine Überprüfung der Begrenzungen durchgeführt.

C#-Programmiersprachenspezifikation

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

Siehe auch

C#-Referenz
C#-Programmierhandbuch
C#-Operatoren
Arrays
Indexer
unsafe
fixed-Anweisung