На этом уроке мы узнаем, как упростить создание итератора. Для этого достаточно просто написать нужный нам цикл, внутри которого воспользоватся волшебным словом yield.
Дата отправки отчёта:
7 ноября 2017 г.
Задание выполнено: за
1 час. 18 мин.
Чему научился:
оператору yield? который передается значение переменной в цикле foreach не прекращая перебор внутри IEnumerable. ну как то так.
Что было сложным:
Найти ошибку в коде. программа выдавала все цифры подряд. Выяснилось что в какой то момент переменная prime в методе IsPraim() сбрасывалась на единицу и в итоге у меня выходило что условие не выполнялось внутри цикла. Решение: Добавил объявление переменной методу IsPraim(long g).
Научился: Использованию yield. Yield позволяет избавится от реализации дополнительного класса , при использовании цикла foreach. И в определенных ситуациях оптимизировать вычисления при большом переборе значений.
Научился: На этом уроке мы наконец-то воспользовались помощью волшебного слова yield. Я еще не до конца прочувствовал эту тему. В голове возникал вопрос: "Для чего городить огород, если есть цикл foreach, который до этого всегда выручал и без использования этих интерфейсов!" Оказалось, что foreach также использует итератор, но неявно. На данный момент я понимаю так: Класс , являющийся коллекцией объектов, использует yield для реализации последовательного обращения ко всем своим элементам с начала до конца. При выполнении программы, yield создаёт класс, который содержит ряд методов по созданию счётчика перечисления, отслеживанию его переполнения, сброса при повторном обращении и тому подобное...