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

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

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

  • На этом уроке мы увидим, что класс, оказывается, создавать не обязательно.
    Магия слова yield сделает всё за тебя, можно просто один раз организовать перебор нужных элементов,
    и потом его можно использовать через обычный foreach в любом месте программы.
    Вся прелесть в том, что перебор элементов происходит по мере необходимости.
  • Дата отправки отчёта: 16 апреля 2016 г.
  • Задание выполнено: за 2 час. 40 мин.
  • Чему научился: чистое ООП ... было тяжело но приятно работать
  • Что было сложным: логика для меня по крайней мере (по русски если - въезжать в тему)
  • Комментарии: Я выбрал картинку как гуманитарий наверное, исходя из определения Итератора. Итератор (от англ. iterator ― перечислитель) — интерфейс, предоставляющий доступ к элементам коллекции (массива или контейнера) и навигацию по ним. В различных системах итераторы могут иметь разные общепринятые названия. В терминах систем управления базами данных итераторы называются курсорами.
    Военкоматы отдаленно напоминают мне итераторы.....На картинке Автозаводский военкомат в Нижнем Новгороде.
    Новичкам курс не рекомендую.
  • Оценка видео-уроку:
Отчёт от 3146 за Итератор / Итератор. Один метод вместо классов.




Оцени работу

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

  • Отчёт оценивали:
    689Igorenzia+1   9263Андрей Н.+1   3506Алексей|BrisK|Кривицкий+1   6925Артём+1   6452Кирилл Шмойлов+1   4992Николай+1   4467Alcatraz+1   6958Кирилл+1   1537Сергей+1   9567Максим+1   6644valerys Nikola+1   1Евгений Волосатов+1   7645Александр Львович+1   9237Mais+1   8380zhikharevav+1   2146Иван+1   1947Denis+1   4395Денис+1   9876Hozy+1   9044y0lych+1  

Начинаем практику по языку 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 Когда это нужно использовать и когда не нужно. Такие дела.
Научился: Использовать функцию перебора простых чисел без класса. Наконец-то поняла, для чего нужен IEnumerable
Трудности: Долго не могла найти ошибку - IEnumerator вместо IEnumerable. Потом разобралась.
Дошло наконец-то, к концу курса, зачем IEnumerable нужен - чтобы хранить все перечисленные в списке простые числа, из которых уже выбирается параметр цикла foreach в Main().