Индексаторы (Indexer) и Итераторы (yield). Интерфейс IEnumerable в C# - Учим Шарп #22

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ธ.ค. 2024

ความคิดเห็น •

  • @CODEBLOG
    @CODEBLOG  5 ปีที่แล้ว +11

    На этом занятии мы познакомимся с понятием индексатор (Indexer), который позволяет обращаться к элементам объектов содержащие коллекции по индексу (как к элементам массива). Научимся создавать итератор для перебора имеющихся значений в коллекциях с помощью ключевого слова yield. А также реализуем интерфейсы IEnumerable и IEnumerator, которые используются в большинстве коллекций и необходимы для использования цикла foreach.
    Кстати, меня зовут Вадим, и я программист на языке C# уже больше 8 лет. Рассказываю про IT технологии и веду этот курс по языку C# с нуля под названием Учим Шарп. В его рамках мы рассмотрим как базовый синтаксис языка C Sharp, так и его практическое применение и специальные технологии, такие как ASP.NET, Core, MVC, Unity, WCF, WPF, структуры данных и алгоритмы обработки, паттерны проектирования и многое другое. Подписывайтесь, впереди еще много интересного.

  • @lamax847
    @lamax847 5 ปีที่แล้ว +16

    Огромный тебе респект, лайк и подписка за то, что делаешь это для нас!!!

    • @CODEBLOG
      @CODEBLOG  5 ปีที่แล้ว +3

      Спасибо за поддержку )

  • @alekseykorzjickiy
    @alekseykorzjickiy 5 ปีที่แล้ว +6

    Нормальных каналов для прогеров мало, даже книги и веб-ресурсы на русском по пальцам можно пересчитать, если разбирать сложные темы на шарпе. И те не всегда под актуальные версии языка и о том что нужно.
    Спасибо за труды!!!
    Сам сейчас закончил все азы по Г. Шилдту (учил само сабой не только по нему), начал переходить на ASP и WPF за практикой, и именно по этой теме был последний пробел в понимании фич дот нета.
    Все, пора во фреймворки, аминь )))

  • @maksimzobin1844
    @maksimzobin1844 5 ปีที่แล้ว +8

    Спасибо за видео. Было бы хорошо иметь таймлайны с началом какой либо темы.

  • @victorprohorov6201
    @victorprohorov6201 2 ปีที่แล้ว +1

    Скажите пожалуйста, никак не могу это понять, почему мы и IEnumerable и IEnumerator указываем как типы данных?
    вообще не понимаю как мы в качестве типа данных указываем интерфейс? как это так, интерфейс же можно только наследовать/реализовывать

    • @artur8904
      @artur8904 2 ปีที่แล้ว

      так же как и клас можно наследовать и реализововать его можно использовать как тип данніх. то же и с интерфейсами

    • @victorprohorov6201
      @victorprohorov6201 2 ปีที่แล้ว

      @@artur8904 Спасибо!!!

    • @talisman1104
      @talisman1104 ปีที่แล้ว

      Ты говоришь что в этой переменной будет лежать то, что реализует интерфейс. Тоже самое с классом. Мы создаём переменную такого типа в котором будет хранится данный тип или наследники его

  • @Jokero74
    @Jokero74 4 ปีที่แล้ว +19

    мда, ну нафиг такой сахар, который только путает и сбивает с толку. Сахар вроде должен упрощать, а не усложнять жизнь.

  • @АртурПоздняк-я9х
    @АртурПоздняк-я9х 5 ปีที่แล้ว +1

    Поясните пожалуйста суть интерфейса IEnumerable ? Он просто реализует интерфейс IEnumerator? Если я и так буду реализовывать IEnumerator, можно ли не наследоваться от IEnuberable?

    • @CODEBLOG
      @CODEBLOG  5 ปีที่แล้ว

      Этот интерфейс гарантирует, что в классе будет перечислитель

  • @bloodborn9632
    @bloodborn9632 4 ปีที่แล้ว +1

    Спасиб разбираю троелсена, на скок я понял именованные нумераторы в данном случае getnamber() должен определяться не как ienumerator, а как ienumerable. Так в книге написано, но там ничего не написанно про то что именованный нумератор с елдом возвоащает колекцию, я думал элемент и поэтому сидел тупил от записи foreach(Car car in parking.getcar())посмотрел твое видео и понял что getcar() с елдом внутри возвращает колекцию а не одну машину. Спасиб за видос!

  • @VladisS.Vostok2000
    @VladisS.Vostok2000 4 ปีที่แล้ว +1

    @Написал и в теории обосновал основы клиент-серверного приложения
    @Упомянул про индексаторы
    Норм

  • @eniluck5071
    @eniluck5071 4 ปีที่แล้ว +4

    все лицо в сахаре :-D Обляпался

  • @dannycyberwalker
    @dannycyberwalker 5 ปีที่แล้ว +2

    Можно исходник ?

    • @CODEBLOG
      @CODEBLOG  5 ปีที่แล้ว +1

      github.com/shwanoff/Lesson22

  • @viktorkomlev5804
    @viktorkomlev5804 4 ปีที่แล้ว +1

    только С, только хардкорррр! И можно чай с сахаром пить))

  • @igorcoolman
    @igorcoolman 5 ปีที่แล้ว +12

    звук ужасно тихий в некоторых видеороликах ( к лету догоню наверное вас )))

    • @CODEBLOG
      @CODEBLOG  5 ปีที่แล้ว

      странно, но в других видео наверное лучше

  • @EdwardNorthwind
    @EdwardNorthwind 5 ปีที่แล้ว +2

    Как-то в этот раз совсем в формате "вот есть такие штуки, но что это и как работает я вам не расскажу". Я так и не понял что это за yield и как он работает. Да и реализация итерации просто супер -- просто делегируйте это дерьмо на уже готовый метод.

    • @CODEBLOG
      @CODEBLOG  5 ปีที่แล้ว

      ну да, мне самом этот стрим не очень понравился. в целом идея такая, можно реализовывать перечислитель для коллекции в ручную, а можно сократить количество кода с помощью yield + сделать ленивую загрузку. Скоро когда дойдем в текущем курсе по рихтеру до этой темы постараюсь более подробно разъяснить

  • @vladimirkovyako4308
    @vladimirkovyako4308 4 ปีที่แล้ว +8

    Сколько фейспалмов было пробито мною во время прсмотра, столько чуши сказано, про факториал, про числа Фибоначчи, про рандомное вписывание обобщения в тип обобщения интерфейса, абсолютное не понимаю как работать с итераторами, автор не понимает про такие вещи как Current, MoveNext, Reset вообще не понимаю к чему это 1:17:30 писать индекс в скобках к индексатору, уже второй раз смотрю видео на канале и просто понимаю что автор берёт готовые материалы со сторонних ресурсов и их преподносит, сам при этом не имея большого понятия как оно устроено.
    UPD: 1:19:41 проходить var item по объекту итератор многого стоит, смешно и неудобно смотреть на эту непонятливость темы со стороны автора

  • @ИванЖуков-н1з
    @ИванЖуков-н1з 4 ปีที่แล้ว +2

    Пожалуйста, погромче. Потише можно сделать на устройствах, а погромче уже не выкрутишь с мобильного. Спасибо за видео.

  • @ivanomelchenko1895
    @ivanomelchenko1895 4 ปีที่แล้ว +1

    привет

  • @sashkosashok
    @sashkosashok 5 ปีที่แล้ว +1

    Помаленьку проехал. Но надо будет еще пару раз столкнуться с темой.

    • @CODEBLOG
      @CODEBLOG  5 ปีที่แล้ว

      Да, нужно обязательно на практике посмотреть )

  • @odushbrodya3693
    @odushbrodya3693 5 ปีที่แล้ว +3

    6:55 , слышно как кто то разговаривает сквозь жужжание ... ясно, прослушивают хакера ..

    • @CODEBLOG
      @CODEBLOG  5 ปีที่แล้ว +2

      За нами следят! Где моя шапочка из фольги?! :))

  • @misha-f1k
    @misha-f1k 4 หลายเดือนก่อน

    жалко что он больше не ведет канал , спасибо

  • @ivanomelchenko1895
    @ivanomelchenko1895 4 ปีที่แล้ว +1

    +++

  • @scc-6
    @scc-6 7 หลายเดือนก่อน

    Виэу название, но не понимаю, как это можно растянуть на 2 часа

  • @talisman1104
    @talisman1104 ปีที่แล้ว

    Как-то совсем не подготовлено. Автор сам не вполне понимает тему

  • @dizelman1972
    @dizelman1972 3 ปีที่แล้ว +1

    Чувак не в теме, объясняет методом тыка, цель одна - показать вам как можно больше рекламы