Индексатор (программирование) - Indexer (programming)
Эта статья может быть сбивает с толку или неясно читателям. В частности, это C # или общая концепция объектно-ориентированного программирования? Конечно, интересным является использование ключевого слова this, а не то, что здесь подчеркнуто? Почему вся эта статья размещена только в одном сообщении форума C # (другое сообщение форума - неактивная ссылка). Возможно, пример использования класса-примера продемонстрирует цель конструкции. Википедия - это не руководство, путеводитель или учебник РГ: НИЧТО..Апрель 2015 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
В объектно-ориентированного программирования, индексатор позволяет индексировать экземпляры определенного класса или структуры так же, как массивы.[1] Это форма перегрузка оператора.
Выполнение
Индексаторы реализуются через методы получения и установки аксессуары для оператор[]
. Они похожи на характеристики, но отличаются тем, что не статический, и тот факт, что методы доступа индексаторов принимают параметры. Методы доступа get и set вызываются как методы с использованием списка параметров объявления индексатора, но метод доступа set по-прежнему имеет неявный ценить
параметр.
Пример
Вот пример C # использования индексатора в классе:[2]
учебный класс Наша семья{ общественный Наша семья(параметры нить[] pЧлены) { семья = новый Список<нить>(); семья.AddRange(pЧлены); } частный Список<нить> семья; общественный нить это[int индекс] { // Аксессор get получать { возвращаться семья[индекс]; } // Аксессор set с набор { семья[индекс] = ценить; } } общественный int это[нить вал] { // Получение индекса по значению (найден первый элемент) получать { возвращаться семья.FindIndex(м => м == вал); } } общественный int Длина => семья.Считать; }
Пример использования:
пустота Главный(){ вар ланьСемья = новый Наша семья("Джон", "Джейн"); за (int я = 0; я < ланьСемья.Длина; я++) { вар член = ланьСемья[я]; вар индекс = ланьСемья[член]; // то же самое, что и i в этом случае, но демонстрирует перегрузку индексатора, позволяющую искать doeFamily по значению. Консоль.WriteLine($"{member} - это номер члена {индекс} {nameof (doeFamily)}"); }}
В этом примере индексатор используется для получения значения в n-й позиции, а затем для получения позиции в списке, на которую ссылается его значение. Выходные данные кода:
Джон - член номер 0 в семье лань. Джейн - член номер 1 в семье лань.
Смотрите также
Рекомендации
- ^ jagadish980 (29 января 2008 г.). «C # - Что такое индексатор в C #». http://forums.sureshkumar.net/forum.php: Вестник: ФОРУМЫ СУРЕШКУМАР.НЕТ. Архивировано из оригинал 22 сентября 2009 г.. Получено 2011-08-01.
- ^ "Вопросы для собеседования по C #". http://www.dotnetfunda.com/: .net Funda. Получено 2011-08-01.
Этот компьютерное программирование -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |