Индексаторы в C#

Компьютеры программирование программы C# .net

Сижу читаю Шилдта книгу по шарпу, дошел до главы индексаторы, и ахерел...

В принципе не понимаю, зачем они нам по сути нужны...
Особенно конструкция не понятна, что должно быть в get и в set.???
Посоветуйте какой-то ресурс, чтоб попонятней, или обьясните кто-то пожалуйста что к чему.

public int this[int index]
{
//аксесор get
get
{

}
//аксесор set
set
{

}

Примечание:
это получаеться get срабатывает когда у нас к примеру есть в коде x=MyClass[i]
a set когда MyClass[i] = 5?

или я что то не правильно понял?

Примечание:
Всем спасибо. Кажеться разобрался.
Ответы:
Индексатор - это по сути перегрузка оператора доступа к элементу массива - []
Можно сделать так, чтобы к объектам твоего класса можно было обратиться как к массивам, хотя на самом деле они массивами не являются.
Оно сделано по аналогии с getter/setter, то есть свойства класса которые подменяются на вызов соответствующего метода. Синтаксис которых
тип имя {
   get {
       // вызывается при получении значения свойства
       return this.myvar; // пример
   }
   set {
       // вызывается при установке значения свойства
       this.myvar = value; // value ключевое слово применяемое в setter для необъявленного параметра.
   }
   // или get или set может не быть, или к ним может быть ограничен доступ.
   // можно реализовать ReadOnly или WriteOnly свойства
}
Применяются например они в коллекциях List и Dictionary. В случае Dictionary в качестве индекса может применяться любой тип поддерживающий сравнение равнозначности объектов (число, строка, Guid и т.д.), можно самому создавать такие типы. Можно организовать при вызове этих методов запрос к базе данных или поиск по двоичному дереву. Но по сути это ничем не отличается от "тип GetItem(тип index) {}; void SetItem(тип index, тип value) {}", просто синтаксический сахар. Пример использования:
var dic = new Dictionary<string,int>();
dic["test"] = 5; // вызывает set
int val = dic["test"]; // вызывает get


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.