Dieser Artikel wurde noch nicht bewertet Dieses Thema bewerten.

Operator [] (C#-Referenz)

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

Ein Arraytyp ist ein Typ, auf den [] folgen.

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 eckige 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 sich ein Arrayindex außerhalb des gültigen Bereichs befindet.

Der Arrayindizierungsoperator kann nicht überladen werden. Typen können jedoch Indexer und Eigenschaften definieren, die mindestens einen Parameter aufweisen. Indexerparameter werden genau so wie Arrayindizes in eckige Klammern eingeschlossen. Indexerparameter können aber als beliebiger Typ deklariert werden, während Arrayindizes immer ganzzahlig sein müssen.

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

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

Eckige Klammern werden auch verwendet, um Attribute (C#-Programmierhandbuch) anzugeben:

[attribute(AllowMultiple=true)]
public class Attr 
{
}

Sie können eckige Klammern verwenden, um die Indizierung eines Zeigers aufzuheben:

unsafe fixed ( int* p = fib )   // p points to fib from earlier example
{
    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 Grenzen durchgeführt.

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?