Оператор [] (Справочник по C#)

Обновлен: Ноябрь 2007

Квадратные скобки ([]) используются для массивов, индексаторов и атрибутов. Кроме того, они могут использоваться с указателями.

Заметки

Тип массива указывается перед оператором []:

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

Для доступа к элементу массива его индекс необходимо заключить в скобки:

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

Если индекс массива выходит за границы диапазона, происходит вызов исключения.

Перегрузка оператора индексирования массива невозможна; однако типы могут определять индексаторы и свойства, принимающие один или более параметров. Параметры индексатора заключаются в квадратные скобки, как и индексы массива, но, в отличие от индексов массива, которые должны быть целочисленными, эти параметры могут быть любого типа.

Например, в платформе .NET Framework определен тип Hashtable, связывающий ключи и значения произвольного типа.

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

Также квадратные скобки используются для определения Атрибуты (Руководство по программированию на C#):

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

Квадратные скобки можно использовать для создания индекса из указателя.

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

Проверка границ не выполняется.

Спецификация языка C#

Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:

  • 1.6.7.5 Операторы

  • 7.2 Операторы

См. также

Основные понятия

Руководство по программированию в C#

Ссылки

Операторы C#

Массивы (Руководство по программированию на C#)

Индексаторы (руководство по программированию в C#)

unsafe (Справочник по C#)

Оператор fixed (Справочник по C#)

Другие ресурсы

Справочник по C#