Индексаторы (Руководство по программированию в C#)
Индексаторы позволяют индексировать экземпляры класса или структуры так же, как массивы. Индексаторы напоминают свойства, но их методы доступа принимают параметры.
В следующем примере определяется универсальный класс и в качестве средств присвоения и извлечения значений создаются простые методы доступа get и set. Класс Program создает экземпляр этого класса для хранения строк.
class SampleCollection<T>
{
// Declare an array to store the data elements.
private T[] arr = new T[100];
// Define the indexer, which will allow client code
// to use [] notation on the class instance itself.
// (See line 2 of code in Main below.)
public T this[int i]
{
get
{
// This indexer is very simple, and just returns or sets
// the corresponding element from the internal array.
return arr[i];
}
set
{
arr[i] = value;
}
}
}
// This class shows how client code uses the indexer.
class Program
{
static void Main(string[] args)
{
// Declare an instance of the SampleCollection type.
SampleCollection<string> stringCollection = new SampleCollection<string>();
// Use [] notation on the type.
stringCollection[0] = "Hello, World";
System.Console.WriteLine(stringCollection[0]);
}
}
Общие сведения об индексаторах
Индексаторы позволяют индексировать объекты аналогично массивам.
Метод доступа get возвращает значение. Метод доступа set присваивает значение.
Ключевое слово this используется для определения индексаторов.
Ключевое слово value используется для определения значения, присваиваемого методом set индексатора.
Индексаторы не должны использовать в качестве индекса целочисленное значение; конкретный механизм поиска определяет разработчик.
Индексаторы можно перегружать.
Индексаторы могут иметь более одного формального параметра, например при доступе к двухмерному массиву.
Связанные разделы
Использование индексаторов (Руководство по программированию в C#)
Индексаторы в интерфейсах (Руководство по программированию в C#)
Сравнение свойств и индексаторов (Руководство по программированию в C#)
Ограничение доступности методов доступа (Руководство по программированию на C#)
Спецификация языка C#
Дополнительные сведения см в Спецификация языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.
См. также
Ссылки
Свойства (Руководство по программированию в C#)