Интерфейс lEnumerator

более конкретно интерфейс b ibindinglistview

Метод должен возвращать объект-перечислитель, реализующий интерфейс LEnumerator.

Интерфейс LEnumerator Имеет три элемента и работает подобно «логическому курсору» в коллекции данных. Он отправляется от позиции, установленной непосредственно перед первым элементом коллекции. Его использование начинается с вызова метода MoveNext Перечислителя, который позиционирует курсор на первый элемент, если таковой имеется, и возвращает True. Если коллекция пуста, первый вызов MoveNext Возвращает False. Последующие вызовы MoveNext Перемещают курсор на следующий логический элемент коллекции, пока в ней больше не останется элементов. Метод продолжает возвращать True, Пока курсор к моменту завершения вызова устанавливается на элемент коллекции. Когда элементов больше нет, MoveNext Возвращает False. Такая модель позволяет изящно и компактно организовать итерацию, поместив вызов MoveNext В цикл While. Порядок передвижения логического курсора определяется реализатором интерфейса LEnumerator И не обязан соответствовать физическому порядку следования элементов в коллекции. Например, если вы реализуете перечислитель для сортируемой коллекции, вы захотите, чтобы курсор перемещался в соответствии с порядком сортировки. Однако если вы собираетесь поддерживать сортировку, вам придется также позаботиться о реализации интерфейса IBindingList. К итерируемым элементам вы обращаетесь через свойство Current. Это свойство интерфейса LEnumerator Возвращает ссылку типа Object, Которая должна указывать на текущий элемент коллекции в позиции логического курсора. Интерфейс LEnumerator Включает также метод Reset, Возвращающий курсор к его начальной позиции, позволяя вам произвести повторную итерацию по той же коллекции, используя тот же самый перечислитель. Следующий фрагмент кода показывает типичный цикл, использующий интерфейсы Обобщенная коллекция List<T> Реализует интерфейс LEnumerable , Поэтому код посредством неявного приведения получает ссылку на интерфейс LEnumerable Коллекции. Затем он вызывает через эту интерфейсную ссылку метод GetEnumerator, Который возвращает интерфейсную ссылку типа LEnumerator. Имея перечислитель, вы на его методе MoveNext Организуете цикл While.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *