Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович

Итератор / Итератор. Один метод вместо классов.

  • На этом уроке мы увидим, что класс, оказывается, создавать не обязательно.
    Магия слова yield сделает всё за тебя, можно просто один раз организовать перебор нужных элементов,
    и потом его можно использовать через обычный foreach в любом месте программы.
    Вся прелесть в том, что перебор элементов происходит по мере необходимости.
  • Дата отправки отчёта: 1 мая 2016 г.
  • Задание выполнено: за 10 мин.
  • Чему научился: Научился использовать возможности интерфейса перечисления без создания специального класса, наследующего этот интерфейс.
  • Что было сложным: ---
  • Комментарии: Возможность, конечно, очень интересная, но смысла от нее я не вижу никакого, если мы уж пишем такой метод, то логично его выделить в отдельный полноценный класс, отвечающий всем канонам IEnumerator.
    В теле цикла foreach() метода Start() добавил строчку
    if (j > number) break;
    после вложенного цикла while(), т. к. если начальное число большое, а его делители маленькие, очень долго приходится ждать пока он там впустую прогонит цикл до конца, хотя множители все уже найдены...
  • Оценка видео-уроку:
Отчёт от 9263 за Итератор / Итератор. Один метод вместо классов.




Оцени работу

 
Сохранить страницу:


Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Затрудняюсь даже сказать.
Трудности: Понимание происходящего.
Вот я закончил курс. Почему курс оказался плох? Не знаю как для других, я про себя скажу. Самая главная ошибка всех обучающих курсов или преподов в том, что они либо сами не понимают до конца тему, либо не могут применить правильно инструмент. Либо применяют его примерно так: розовый банан скачет по космосу. Я долго думал над этой фразой, чтобы она как можно более упоротей звучала. Примерно то же я вижу у себя на экране: черное окно и там столбик каких-то цифр. Я понятия не имею, что такое простые множители или там цифры. Для меня если я могу запомнить цифры в голове, то они простые, а 233459089 для меня сложная цифра. Курс называется "разложение числа на простые множители". Сначала я подумал, что число 123 будет раскладываться на 1, 2 и 3. С этим примером у меня связано одно событие. В пту году в 2005 был день открытых дверей и надо было что-то сделать и показать для посетителей, типа чем мы занимаемся тут. У меня валялась плата с тремя индикаторами от спутникового приемника и там было 3 регистра для статической индикации. Я еще раньше с корешем ходил к нему в общагу и он показывал мне, как написать прошивку для контроллера под эту плату. Типа вот есть число 123 и оно влазит в 1 байт, а плата с индикаторами - это 3 байта. Как бы так разобрать число на отдельные цифры? Я пришел к нашей училке по матану и программированию и спросил ее, а она мне и рассказала. Я это написал в коде и оно заработало. С тех пор я до конца жизни это буду помнить. Тут я не понял, что такое простые множители и зачем они мне нужны в этой проге. Я тупо не видел образа или конкретного применения. Поэтому у меня в голове розовый банан скачет по космосу. Я пошарился часа 2 по гуглу и нашел пару боле менее годных визуальных примеров. http://csharphelper.com/blog/2017/04/enumerate-treeview-nodes-c/ http://brain-it.blogspot.de/2009/08/c-yield.html http://flash2048.com/post/yield http://www.c-sharpcorner.com/UploadFile/40e97e/iterator-pattern/ Вот тут есть очень хороший рисунок, который расписывает маппинг методов интерфейса к переменным цикла foraech. Одна эта картинка уже решает 50% вопросов. Как я понял - елд нужен для составления какого-то списка в памяти по критериями фильтрации какого-то массива данных. Потом этот список можно использовать дальше в своем коде. И как там пишут - linq заменил почти елд, т.к. фильтры стали делаться sql подобными запросами. В конечном эффекте я все равно не понял про итераторы и елды. Перебрать дерево вроде можно и так. Мне в реальной проге надо было перебирать радиокнопки отмеченные в разных группах и я делал в цикле. Интуитивно я ощущаю, что эта штука нужна для реализации фильтра в контролах типа gridview или как его там, который рисует таблицы со столбцами как в екселе или типа того. Но этот курс из категории профи, так что неудивительно, что ничего непонятно. Что нужно было сделать? 1 Дать простое определение итератору. 2 Что такое IEnumerator и IEnumerable. 3 В каком реальном проекте их использовали и что было бы, если бы не использовали. 4 Yield это обязательное слово в связке IEnumerator и IEnumerable или идет дополнением? 5 Какой с него профит в реальном софте и что было бы без него. 6 Когда это нужно использовать и когда не нужно. Такие дела.
Научился: сути Енумераторов
Очень полезный курс. Раскрывает магию работы таких типов как IEnumerator и IEnumerable. Нужно обязательно попробовать использовать его где нибудь еще.