Определяет оператор индекса для вашего типа. Взять, к примеру, класс List<T>
. Разработчики библиотеки хотели, чтобы вы могли написать код, подобный следующему:
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
int x = list[2]; // x == 3
Синтаксис, который выполняет то, что вы опубликовали выше. Итак, для ваших собственных типов, вы можете ...
class NameCollection : /* whatever */
{
private List<string> _names = new List<string> { "Ed", "Sally", "John" };
public string this[int index]
{
get { return _names[index]; }
}
}