Operator (C# Reference)
Colchetes ([]) são usados para arrays, os indexadores e atributos. Eles também podem ser usados como ponteiros.
Comentários
Um tipo de matriz é um tipo seguido por []:
int[] fib; // fib is of type int[], "array of int".
fib = new int[100]; // Create a 100-element int array.
Para acessar um elemento de um array, o índice do elemento desejado é delimitado por colchetes:
fib[0] = fib[1] = 1;
for (int i = 2; i < 100; ++i) fib[i] = fib[i - 1] + fib[i - 2];
Uma exceção é gerada se um índice do array estiver fora do intervalo.
O operador de indexação do array não pode ser sobrecarregado; no entanto, podem definir tipos indexadores, e propriedades que peguem um ou mais parâmetros. Parâmetros do indexador estão entre colchetes, assim como os índices da matriz, mas os parâmetros de indexador podem ser declarados para ser de qualquer tipo, ao contrário de índices de array, que deve ser integrante.
Por exemplo, o.NET Framework define uma Hashtable o tipo que associa as chaves e valores do tipo arbitrário:
System.Collections.Hashtable h = new System.Collections.Hashtable();
h["a"] = 123; // Note: using a string as the index.
Colchetes também são usados para especificar Atributos (C# e Visual Basic):
// using System.Diagnostics;
[Conditional("DEBUG")]
void TraceMethod() {}
Você pode usar colchetes para indexar um ponteiro:
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];
}
}
Nenhuma verificação será executada.
Especificação da linguagem C#
Para obter mais informações, consulte C# Language Specification A especificação de linguagem é a fonte definitiva para a sintaxe e o uso de C#.
Consulte também
Referência
Indexers (C# Programming Guide)
fixed Statement (C# Reference)