488.48K
Категория: ПрограммированиеПрограммирование

Оператор Yield Return. Интерфейсы Ienumerable и Ienumerator

1.

ОПЕРАТОР YIELD RETURN.
ИНТЕРФЕЙСЫ IENUMERABLE И
IENUMERATOR.

2.

Интерфейс IEnumerable в C# представляет
базовый интерфейс для коллекций, которые
могут быть перечислены.

3.

Интерфейсы в С#
• Интерфейс представляет ссылочный тип, который
может определять некоторый функционал - набор
методов и свойств без реализации.
• Интерфейс может содержать абстрактные методы,
свойства, индексаторы и события, которые должны
быть реализованы в производных классах.

4.

Коллекции
Коллекция — это класс-контейнер, в котором
содержатся и обрабатываются группы подобных
объектов.
Для работы с коллекциями нужно подключить
пространство имен System.Collections

5.

Коллекции в C#
List<T>
Динамический массив
объектов. Он может
содержать элементы
различных типов.
Dictionary<TKey, TValue>
Коллекция пар "ключзначение". Ключи и
значения могут быть
любых типов.

6.

Коллекции в C#
HashSet<T>
Queue<T>
Коллекция уникальных
элементов без
дубликатов.
Очередь элементов (FirstIn-First-Out)

7.

Коллекции в C#
ObservableCollection<T>
Stack<T>
Коллекция,
поддерживающая
уведомления об
изменениях в элементах.
Коллекция элементов,
которая работает по
принципу "последним
пришел - первым вышел"
(LIFO)

8.

РЕАЛИЗАЦИЯ ИНТЕРФЕЙСОВ
IENUMERABLE И
IENUMERATOR

9.

Интерфейс IEnumerable
GetEnumerator()
Интерфейс IEnumerable
имеет метод,
возвращающий ссылку на
другой интерфейс
- перечислитель.

10.

Интерфейс IEnumerator
Метод MoveNext()
Перемещает указатель на текущий элемент на следующую позицию в последовательности. (
последовательность закончилась- true, в противном случае- false)
Свойство Current
Возвращает объект в последовательности, на который указывает указатель.
Метод Reset()
Сбрасывает указатель позиции в начальное положение
.

11.

ИТЕРАТОРЫ И
ОПЕРАТОР YIELD

12.

Итераторы
• Итераторы в C# позволяют создавать объекты,
которые предоставляют доступ к элементам
последовательности по одному за раз. Они
обеспечивают удобный способ перебора элементов
коллекции
• При использовании оператора foreach для перебора
элементов коллекции, компилятор автоматически
преобразует цикл foreach в вызовы методов
GetEnumerator, MoveNext и Current. Итераторы
позволяют определить эти методы явным образом.

13.

Оператор yield
Оператор yield используется в методах, которые
возвращают последовательность элементов. Он
позволяет возвращать элементы последовательности
по мере необходимости, при этом сохраняя состояние
метода между вызовами.

14.

Итераторы и оператор yield
Итератор - блок кода, который использует
оператор yield для перебора набора значений. Данный
блок кода может представлять тело метода, оператора
или блок get в свойствах.
Итератор использует две специальных инструкции:
• yield return: определяет возвращаемый элемент
• yield break: указывает, что последовательность
больше не имеет элементов.

15.

Примеры использования оператора
yield
English     Русский Правила