Читаем C# 4.0 полное руководство - 2011 полностью

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

Индексаторы

Как вам должно быть уже известно, индексирование массива осуществляется с помощью оператора [ ].Длясоздаваемых классов можно определить оператор [ ], но с этой целью вместо операторного метода создается индексатор, который позволяет индексировать объект, подобно массиву. Индексаторы применяются, главным образом, в качестве средства, поддерживающего создание специализированных массивов, на которые накладывается одно или несколько ограничений. Тем не менее индексаторымогут служить практически любым целям,для которыхвыгодным оказывается такой же синтаксис, как и у массивов. Индексаторы могут быть одно- или многомерными.

Рассмотрим сначала одномерные индексаторы.

Создание одномерных индексаторов

Ниже приведена общая форма одномерного индексатора:

тип_элементаthis[intиндекс] {

// Аксессор для получения данных, get {

// Возврат значения, которое определяетиндекс.

}

IIАксессор для установки данных, set {

// Установка значения, которое определяетиндекс.

}

}

гдетип_элементаобозначает конкретный тип элемента индексатора. Следовательно, у каждого элемента, доступного с помощью индексатора, должен быть определенныйтип_элемента.Этот тип соответствует типу элемента массива. Параметриндексполучает конкретный индекс элемента, к которому осуществляется доступ. Формально этот параметр совсем не обязательно должен иметь типint,но поскольку индексаторы, как правило, применяются для индексирования массивов, то чаще всего используется целочисленный тип данного параметра.

В теле индексатора определены два аксессора (т.е. средства доступа к данным):getиset.Аксессор подобен методу, за исключением того, что в нем не объявляется тип возвращаемого значения или параметры. Аксессоры вызываются автоматически при использовании индексатора, и оба получают:индексв качестве параметра. Так, если индексатор указывается в левой части оператора присваивания, то вызывается аксессорsetи устанавливается элемент, на который указывает параметриндекс.В противном случае вызывается аксессорgetи возвращается значение, соответствующее параметруиндекс.Кроме того, аксессорsetполучает неявный параметрvalue,содержащий значение, присваиваемое по указанному индексу.

Перейти на страницу:

Похожие книги

Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT