Принципы объектно-ориентированного программирования

         

Определение индексаторов



Определение индексаторов

Свойства иногда называются "умными полями", а индексаторы — "умными массивами", а значит, стоит использовать для них один синтаксис. Действительно, определение индексатора во многом напоминает определение свойств, кроме двух крупных отличий. Во-первых, индексатор принимает аргумент индекс. Во-вторых, поскольку сам класс применяется как массив, в качестве имени индексатора используется ключевое слово this. Вскоре вы увидите более полный пример, а сейчас взгляните на такой пример индексатора:

class MyClass

{


public object this [int idx]

{

get

{

// Возврат нужных данных.

} set

{

// Установка нужных данных.

} }

}

Это лишь часть примера, иллюстрирующего синтаксис индексаторов, так как внутренняя реализация способа определения данных, их получения и установки к индексаторам не относится. Имейте в виду, что независимо от внутреннего способа хранения ваших данных (т. е. в виде массива, набора и т. д.) индексаторы — всего лишь средства, позволяющие программисту создавать экземпляр класса для написания, например, такого кода:

MyClass els = new MyClassO;

cls[0] = someObject;

Console.WriteLine("{0}", cls[0]);

Что именно вы делаете в пределах индексатора — ваше личное дело, пока клиент класса получает при обращении к объекту как к массиву ожидаемые результаты.

 

Содержание раздела