Индексаторы (руководство по программированию в C#)
Обновлен: Ноябрь 2007
Индексаторы позволяют индексировать экземпляры класса или структуры так же, как массивы. Индексаторы напоминают свойства, но их методы доступа принимают параметры.
В следующем примере определяется универсальный класс и в качестве средств присвоения и извлечения значений создаются простые методы доступа get и set. Класс Program создает экземпляр этого класса для хранения строк.
class SampleCollection<T>
{
private T[] arr = new T[100];
public T this[int i]
{
get
{
return arr[i];
}
set
{
arr[i] = value;
}
}
}
// This class shows how client code uses the indexer
class Program
{
static void Main(string[] args)
{
SampleCollection<string> stringCollection = new SampleCollection<string>();
stringCollection[0] = "Hello, World";
System.Console.WriteLine(stringCollection[0]);
}
}
Общие сведения об индексаторах
Индексаторы позволяют индексировать объекты аналогично массивам.
Метод доступа get возвращает значение. Метод доступа set присваивает значение.
Ключевое слово this используется для определения индексаторов.
Ключевое слово value используется для определения значения, присваиваемого методом set индексатора.
Индексаторы не должны использовать в качестве индекса целочисленное значение; конкретный механизм поиска определяет разработчик.
Индексаторы можно перегружать.
Индексаторы могут иметь более одного формального параметра, например при доступе к двухмерному массиву.
Разделы по теме
Использование индексаторов (руководство по программированию в C#)
Индексаторы в интерфейсах (руководство по программированию в C#)
Сравнение свойств и индексаторов (руководство по программированию в C#)
Асимметричные методы доступа (Руководство по программированию в C#)
Спецификация языка C#
Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:
1.6.7.3 Индексаторы
10.2.9.3 Зарезервированные для индексаторов имена членов
10.9 Индексаторы
13.2.4 Индексаторы интерфейсов
См. также
Основные понятия
Руководство по программированию в C#