Operatore (Riferimenti per C#)

Le parentesi quadre ([]) vengono utilizzate per le matrici, gli indicizzatori e gli attributi,ma possono essere utilizzate anche per i puntatori.

Note

Un tipo matrice è un tipo seguito da []:

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

Per consentire l'accesso a un elemento di una matrice, l'indice dell'elemento desiderato viene racchiuso tra parentesi:

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

Se l'indice di una matrice non è incluso nell'intervallo, viene generata un'eccezione.

L'operatore di indicizzazione della matrice non può essere sottoposto a overload; tuttavia, i tipi possono definire gli indicizzatori nonché le proprietà che accettano uno o più parametri.I parametri dell'indicizzatore sono racchiusi tra parentesi quadre, come qualsiasi indice di matrice, ma, differentemente da questi ultimi che devono essere integrali, possono essere dichiarati come appartenenti a un tipo qualsiasi.

In .NET Framework, ad esempio, viene definito un tipo Hashtable che associa chiavi e valori di tipo arbitrario:

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

Le parentesi quadre vengono inoltre utilizzate per specificare Attributi (C# e Visual Basic):

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

È possibile utilizzare le parentesi quadre per effettuare l'indicizzazione a partire da un puntatore:

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

Non viene effettuata alcuna verifica dei limiti.

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere la Specifiche del linguaggio C#. La specifica del linguaggio è la fonte ufficiale per la sintassi e l'utilizzo di C#.

Vedere anche

Riferimenti

Operatori [C#]

Matrici (Guida per programmatori C#)

Indicizzatori (Guida per programmatori C#)

unsafe (Riferimenti per C#)

Istruzione fixed (Riferimenti per C#)

Concetti

Guida per programmatori C#

Altre risorse

Riferimenti per C#