C# Events События

Поділитися
Вставка
  • Опубліковано 19 вер 2024

КОМЕНТАРІ • 129

  • @codaza-channel
    @codaza-channel  3 роки тому +33

    Удобная навигация по видео :)
    0:00 - Начало
    0:37 - Про делегаты
    1:13 - Механика event
    2:15 - Зачем нужна обёртка над delegate?
    4:28 - Анатомия объявления event
    5:50 - Техника использования event
    7:35 - delegate vs event
    13:30 - Завершение

  • @chinchilla898
    @chinchilla898 3 роки тому +90

    Очень хорошее объяснение. Везде пишут технические детали, но никто не пытается поговорить о сути. Сейчас у меня все прояснилось. Спасибо! Делаю репост!

    • @codaza-channel
      @codaza-channel  3 роки тому +8

      Супер! Здорово, что Вы почувствовали суть event 👍

  • @КонстантинСивков-п4в

    Видно что очень много сил вложено в видеоурок. Ваши объяснения очень отличаются от всего остального, что можно найти на просторах ютуба именно тем, что Вы в первую очередь стараетесь донести суть, а не сухую теорию. Большой спасибо за Ваши ролики!

    • @codaza-channel
      @codaza-channel  2 роки тому +1

      Благодарю за тёплый комментарий 💙 Очень рад, что ролик оказался полезным. Главная цель канала codaza - доступное изложение непростых концепций понятным языком.

  • @РоманВолженин-я6л

    Лучший канал по программированию! Жаль, что заброшен

  • @mestnq5553
    @mestnq5553 2 роки тому +37

    странно что так мало подписчиков.. очень годные видео, продолжайте!

  • @ВячеславСотников-з8с

    Respect for explanation the difference between a delegate and an event.

    • @codaza-channel
      @codaza-channel  3 роки тому +2

      You are welcome :) Thank you for the comment!

  • @Olegcowboyoleg
    @Olegcowboyoleg Рік тому +5

    Такие, как вы, автор, нужны людям. И ролики такие нужны. Хорошо, плавно, гладко, без всякого лишнего мычания, в меру динамтчно, в меру нерасторопно, но по делу.
    Поклон вам.
    Спасибо.

  • @victorbelkov5346
    @victorbelkov5346 2 роки тому +11

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

    • @codaza-channel
      @codaza-channel  2 роки тому +1

      Очень рад, что вы уловили суть событий в C#. Теперь в ваших руках очень мощный инструмент, пользуйтесь им разумно 😉

  • @alexanderdresvyansky8614
    @alexanderdresvyansky8614 2 роки тому +4

    Спасибо. Благодаря такой подачи даже с недосыпом мозг собирается в кучу.

    • @codaza-channel
      @codaza-channel  2 роки тому

      Супер! Спасибо за комментарий. Всё же, старайтесь высыпаться :)

  • @ОрестГрач
    @ОрестГрач 2 роки тому +5

    Просто невероятный формат роликов. Спасибо)

  • @enclave_knight
    @enclave_knight Рік тому +2

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

  • @antonchesnokov9230
    @antonchesnokov9230 Рік тому +1

    Помимо всего сказанного чувство юмора у автора просто блестящее)

  • @MimakaGamleT
    @MimakaGamleT Рік тому

    Про цвета - просто вышак! Иными словами: Ваша аллегория с цветами - выше всяких похвал.

  • @Enjoykian
    @Enjoykian 8 місяців тому

    Автор, спасибо за труд!!! Качество подачи на самом высшем уровне.

  • @ВиталийВитал-ю2у
    @ВиталийВитал-ю2у 2 роки тому +4

    Добрый день! Наконец-то, среди сотни сайтов нашел канал, где смог понять что такое делегат, ну и события автоматом. Спасибо! Большая просьба: не могли бы Вы вот также профессионально просветить наконец, так что же такое многопоточность и все, что вокруг нее вертится, а также работа с БД. Заранее благодарен!

  • @ivanbazhanov
    @ivanbazhanov 3 роки тому +6

    Спасибо! Ждем про шаблоны проектирования!)

  • @iGynLoD
    @iGynLoD 2 роки тому +1

    Самое лучшее объяснение, из тех что я видел.

  • @mastervolodsobeck5176
    @mastervolodsobeck5176 2 роки тому +1

    Благодарю! Лучшее объяснение, все стало на свои места, и даже получилось проверить!

    • @codaza-channel
      @codaza-channel  2 роки тому

      Спасибо за комментарий. Рад, что информация оказалась полезной 🙂

  • @Stair777
    @Stair777 2 роки тому +2

    сложна, но интересно) вернусь к видео, когда наберусь побольше программисткого скилла

  • @alexandrsavin2266
    @alexandrsavin2266 10 місяців тому

    Классный канал и топовый контент. Очень понятно. Приятно слушать. Надеюсь, что канал оживет. Спасибо за всё

  • @michael_sss
    @michael_sss Рік тому

    Просто топчик. Я наконец-то ДЕЙСТВИТЕЛЬНО понял что такое события )) автор, продолжай - у тебя талант объяснять.

  • @NK-fy4mw
    @NK-fy4mw 2 роки тому +1

    Спасибо большое за понятное объяснение, все по полочкам разложили)

    • @codaza-channel
      @codaza-channel  2 роки тому

      Рад, что видео оказалось полезным 🙂 Благодарю за комментарий 👍

  • @mikkimorfin5406
    @mikkimorfin5406 3 роки тому +1

    Благодарю)Хорошего всем дня!

  • @vladoss4643
    @vladoss4643 Рік тому

    Спасибо. В начале было очень понятно. С середины стало сложнее, но вы сделали все что смогли) Отличное видео)

  • @shadow_wolfplay943
    @shadow_wolfplay943 9 місяців тому

    Меня сложно заставить подписаться, но я подписался, даже не успев досмотреть видео до конца. На сравнении с красками пошёл подписываться.

  • @HeIvis
    @HeIvis 2 роки тому +2

    Невероятно информативный видос!!!

  • @ТимурИксанов-д2к
    @ТимурИксанов-д2к 8 місяців тому

    После фразы: "Напоминаю Вы на канале Кадаза и отсюда невозможно уйти не поняв материал" Я не мог не подписаться

  • @ИльяКурашов-г7ж
    @ИльяКурашов-г7ж Рік тому +2

    Одни из самых понятных уроков по событиям в C#
    Спасибо за урок
    p.s. Подскажите, будут ли новые выпуски?

  • @bennails3447
    @bennails3447 Рік тому

    Спасибо за классную рубрику! Побольше бы таких видео про разные аспекты C#. Может быть, даже что-то про автоматизацию тестирования появится (не Unit-тесты, а именно QA Automation) Выйду на работу в следующем месяце, подпишусь на спонсортво канала

  • @user-zv8qs3es7m
    @user-zv8qs3es7m 9 місяців тому

    Офигеть топовый контент, 2 видео уже смотрю мне оч нравится, похоже я с вами на долго))

  • @niklp6116
    @niklp6116 2 роки тому +1

    вроде понял, спасибо. Но нужно время чтоб это отложилось в голове)

  • @НиколайЛарионов-г5г

    Суперское видео, спасибо

  • @lomshakov
    @lomshakov 2 роки тому +1

    Уникальная подача)

  • @nikita6812
    @nikita6812 3 роки тому +2

    Крутая подача материала ;)

    • @codaza-channel
      @codaza-channel  3 роки тому

      Спасибо за комментарий. Впереди много интересного 😉

  • @ekaterina6453
    @ekaterina6453 2 роки тому +1

    Я вас обожаю ) жду теперь про интерфейсы )

  • @ellakamenetsky7742
    @ellakamenetsky7742 Рік тому

    Спасибо за крутые уроки!

  • @fa3r714
    @fa3r714 2 роки тому +1

    Спасибо за видео)
    За 15 минут видео и немного практики все стало понятно, обьясняешь охуенно) Удачи в продвижении канала😌

  • @firemanhood1526
    @firemanhood1526 3 роки тому +1

    Топ делаешь! Подача угар) раскладываешь по полочкам. Ждем еще видео и побольше, лайк и подписка. По асп.нет кору хорошо бы побольше инфы.

    • @codaza-channel
      @codaza-channel  3 роки тому +1

      Благодарю за комментарий! Рад, что подача понравилась. Да, конечно, будем еще много говорить на канале про ASP.NET :)

  • @RYMediaProduction
    @RYMediaProduction 3 роки тому +1

    Спасибо большое за видео!

  • @kirillpetrov1424
    @kirillpetrov1424 2 роки тому +1

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

  • @AzizjanAyupov_leo
    @AzizjanAyupov_leo 2 роки тому

    Круто. Как всегда докопались до дьявола)

  • @hmixa
    @hmixa Рік тому +2

    Дико извиняюсь но тема не вся раскрыта. Не услышал главное отличие event-a от delegate-a. А оно принципиальное! Это я пишу для Ваших подпищиков. Делегат это поля класса, как было правильно замечено, как любое плен типа int или string. A event это всегда свойство! С двумя не явными setter-ом и getter-ом, а иногда и явными и приватным полем типа delegate. Вот поэтому подписаться на событие и отписаться можно и из вне класса, а то вызвать только изнутри, и это правильно! И только по этому, именно как property он (event) может быть объявлен в интерфейсе. Другими словами event это ничто другое как синтаксический сахар, за который мы и любим c#.

  • @aleksey_peresvet
    @aleksey_peresvet Рік тому

    Я начинающий разработчик на C#(в том смысле, что работаю разработчиком), просмотрел это видео. Хм. Вынужден признать одно из двух: либо я недостаточно умен, либо автору видео лучше прекратить говорить о том, что вопрос темы после просмотра видео будет закрыт раз и навсегда)). Как минимум надо оговориться - у большинства будет закрыт. @Автор, дам совет, можете как угодно к нему относится, тем не менее: все люди разные и находятся на разной стадии понимания каких-то вещей. Одни люди какие-то вещи вообще не понимают, другие соответственно другие вещи не понимают. НО. Каждый человек на планете делает какие-то базовые вещи, которые действительно делает любой. Ну например покупает продукты в магазине, ходит на работу, ездит на (каком-то) транспорте, живет в доме(квартире), дружит с друзьями, женат(или замужем) и тд. Сейчас объясню к чему это предисловие, так вот, это, скажем так, общие поля и методы класса человек, приводя "аналогии" к этим полям, методам, свойствам и тд можно объяснить практически все что угодно, имея достаточное воображение. Как можно объяснить что-то такое делегат? Например: я заказываю продукты питания через службу доставки, я передаю в службу список нужных мне продуктов и жду курьера. Всё. Я ДЕЛЕГИРОВАЛ сбор и доставку продуктов каким-то НЕИЗВЕСТНЫМ мне людям. Таким образом служба доставки это ДЕЛЕГАТ, который хранит ссылку на курьера, я передал делегату список продуктов, делегат вызвал курьера и передал ему список продуктов. Теперь для чего нужны делегаты? Можно ответить используя приведенный выше пример: я не знаю какой именно курьер(метод) будет собирать и доставлять продукты, я знаю только название службы доставки(имя делегата), это очень удобно для меня, так как избавляет меня от любых хлопот, я не думаю какой курьер будет вызван, какой у него номер телефона, где он находится в данный момент, в каком магазине он будет собирать для меня продукты и тд, и это удобно для службы доставки, она в любой момент может поменять курьера, если один заболел или уволился или слишком занят на другом заказе и при этом службе доставки не нужно никак уведомлять об этом меня, ведь я понятия не имею какой именно курьер будет осуществлять доставку. Примерно так. И при этом ни одной строчки кода)).

  • @Дмитрийсекрет-н7о
    @Дмитрийсекрет-н7о 3 роки тому +1

    Теперь стало понятней )))

  • @МаксимАдаменко
    @МаксимАдаменко 3 роки тому +1

    Все верно и по делу

  • @kostenkoff
    @kostenkoff Рік тому

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

  • @ЕкатеринаБирюкова-н7и

    Наконец-то разница улеглась в голове. Спасибо!

  • @ГеоргийЧупин-в1е
    @ГеоргийЧупин-в1е 3 роки тому +1

    Оо как ждал этого видео)

  • @artmasterio1036
    @artmasterio1036 2 роки тому +1

    Пожалуйста сделайте видео про invoke, invoke member. Почему в текст боксе используют invoke? Канал ваш просто огонь! Буду всем советовать. Спасибо вам!

  • @bsist2413
    @bsist2413 2 роки тому +1

    Было бы хорошо добавить, что event реализует синтаксическую обертка методов add remove над делегатами.

  • @minimalstory
    @minimalstory 2 роки тому +1

    Спасибо, все понятно)

    • @codaza-channel
      @codaza-channel  2 роки тому

      На здоровье 🙂 Благодарю за комментарий 👍

  • @-unity-
    @-unity- 3 роки тому +1

    Слишком мало подписчиков. Решил исправить эту ошибку. Пусть ещё одним подписчиком станет больше!

    • @codaza-channel
      @codaza-channel  3 роки тому

      Мы всегда рады новым подписчикам на канале! Впереди много интересного! 🙂

  • @Lisiy_Lis
    @Lisiy_Lis 10 місяців тому +1

    13:00 спасибо за отличный материал и объяснение. Только нужно добавить, что самым главным отличием события от делегата является невозможно переписать список вызываемых методов вне класса. Если делегату можно задать вызываемый метод через = (и затереть таким образом все что там до этого находилось), то с событием такое "непроходже" - только через += (с сохранением списка вызовов и добавлением нового). Можно было отлично развить пример с библиотекой из прошлого урока, там именно что нужен не делегат а событие. Жаль про это не сказал. Жаль что забросил канал - у тебя отлично получалось

  • @golibxayrullayev1353
    @golibxayrullayev1353 2 роки тому +1

    Круто спасибо

  • @SOBA_MATATA
    @SOBA_MATATA 7 місяців тому

    когда тебе пришлось смотреть видео дважды: один раз из-за музыки, другой раз из-за материала

  • @ВладиславБезуглый-ь2к

    Хочу больше уроков !Спасибо большое !

  • @Atobarob
    @Atobarob 2 роки тому +1

    Здорово

  • @Вадим-н1н7в
    @Вадим-н1н7в Рік тому

    Круто, спасибо

  • @Георгий-ь6с
    @Георгий-ь6с 11 місяців тому

    Многое прояснилось, хотя не до конца понял, чем конкретно во втором примере Congratulated() отличается от CalculateBonus() из первого, ведь его мы тоже можем теоретически делегировать сторонним классам. Все равно очень полезно, спасибо!

  • @ilyavoloshyk1411
    @ilyavoloshyk1411 3 роки тому +6

    Привет, можешь видое про различие пайпов wep api / MVC сделать? Был бы очень признателен

    • @TheVelf
      @TheVelf 2 роки тому

      все эти минимал апи и прочее, каша как у новичка во всех этих какой проект создавать и для чего.

  • @svyattp
    @svyattp 2 роки тому +1

    Годно!

  • @trash.6
    @trash.6 Рік тому +1

    объясните пожалуйста, что значит кода из вне? это метод, который находиться в другом классе или метод, который находиться вообще в другом файле с кодом? (9:40)

  • @iGynLoD
    @iGynLoD 2 роки тому

    Утверждение в начале неверное. Правильное: При условии вечности Вселенной, каждое не невозможное событие является неизбежным!

  • @essentia9
    @essentia9 29 днів тому

    С удовольствием бы посмотрел, как вы справились с объяснением SFINAE😅

  • @hulk3147426
    @hulk3147426 Рік тому +1

    вот почему многие не умеют обьясеять свои записи? почему на 9й строке ты написал Stuck+= ShowPrice? зачем ?что она плюсует?

    • @lisqanve
      @lisqanve 27 днів тому

      Посмотри урок по делегатам. Там точно так же он это делал и объяснял. Коротко это добавление метода в делегат или событие.

  • @olexkov4643
    @olexkov4643 Рік тому

    О самом главном не сказал...
    Event имеет урезанный интерфейс. А точнее только += и -= что предотвращает прямое влияние на делегат.
    На пример в случае публичного делегата ему можно присвоить null в некласса. С Еvent такое не пройдет....

  • @saldy723
    @saldy723 2 роки тому +1

    ля видосики классные

  • @valentinkravchenko2217
    @valentinkravchenko2217 2 роки тому +1

    Привет! Спасибо за видео, очень полезно! Такой вопрос: почему не заостраял внимание на добавление и удаление обработчиков событий? Это важно?

    • @codaza-channel
      @codaza-channel  2 роки тому +1

      Привет! Это важно, но не на столько, чтобы сильно заострять на этом внимание 🙂 Обработчик события добавляется через оператор +=, а удаляется через -=. Это достаточно простая операция. Гораздо важнее осознать уместность применения делегата и события.

  • @КириллЧе-я5ы
    @КириллЧе-я5ы 2 роки тому

    А методы calculatebonus хорошо бы по information expert инкапсулировать в employee

  • @elmiravzalov5782
    @elmiravzalov5782 2 роки тому

    Начал смотреть видео про делегаты и в один момент понял, что нужно сначала смотреть видео про события. Но в видео про события говорится, что всё таки нужно досмотреть про делегаты. Такие дела

    • @codaza-channel
      @codaza-channel  2 роки тому

      Делагаты и события весьма тесно связаны. Сначала предлагается посмотреть видео про делагаты, а далее про события, так как событие - это логическое продолжение делегата.

  • @pofoq
    @pofoq Рік тому

    Стало конечно понятнее, но... Наверное, только с практикой будет видна общая картина.
    Кто и как подписывается на события, например?

  • @v.s.938
    @v.s.938 7 місяців тому

    Так и не понял, есть ли хоть какая-то разница между event и delegate

  • @Michaelovesyou
    @Michaelovesyou Рік тому

    До сих пор не понимаю, почему нельзя просто вызывать метод просто как Метод() или Класс.Метод()? То есть зачем что-то куда-то делегировать (не считая случаев, когда десять методов можно уложить в один красивый делегат)?
    А, и не понял, может ли класс "понять", что в каком-то другом классе произошло событие?

  • @КириллЧе-я5ы
    @КириллЧе-я5ы 2 роки тому

    Логично. Хранение ссылок. Только как следить чтоб ссылки не были битыми?.. garbage?..

  • @filiandun
    @filiandun Рік тому

    Хорошо, я в сотый раз понял, как объявлять эти делегаты и события, но я и в теории не могу представить, на кой мне они упёрлись, из-за чего не понимаю вообще как их использовать.

  • @КириллЧе-я5ы
    @КириллЧе-я5ы 2 роки тому

    А как насчёт использования делегатов в конкурентной среде? Где нибудь в реактивной парадигме? Ведь это тоже подписка на события?..

  • @GDrakula
    @GDrakula Рік тому

    Делегат - это тип, который представляет ссылки на методы с определенным списком параметров и типом возвращаемого значения. При создании экземпляра делегата этот экземпляр можно связать с любым методом с совместимой сигнатурой и типом возвращаемого значения.22 сент. 2022 г. А вы говорите что делегат это класс ?
    Делегаты (Руководство по программированию на C#)

  • @dad912
    @dad912 Рік тому

    Если любое событие неизбежное - даже невозможное . Тогда неизбежно ли что какое-то событие не произойдет ?

  • @Olegcowboyoleg
    @Olegcowboyoleg Рік тому

    Да, кстати, а почему делегат объявляется вне класса Програм, а само событие - внутри класса Програм, но вне тела метода Main?
    Это вообще имеет какое-то решающее значение?

  • @mikhailkhatuntcov1483
    @mikhailkhatuntcov1483 2 роки тому +1

    По поводу вашего интро о трассе 60:
    т.е. изначально невыполниме событие - выполнимо? бред.
    Что если всеразрушающая сила столкнётся с не разрушаемым объектом?
    А так в целом всё чикипуки. Так держать!

    • @codaza-channel
      @codaza-channel  2 роки тому +1

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

    • @victorbelkov5346
      @victorbelkov5346 2 роки тому +1

      Чувак, ты пытаешься найти смысл в шутливой отсылке к фильму, где упоминается событие. Тут про программирование, не про философию:) Цитаты это просто классная фишка автора

    • @ekve9
      @ekve9 2 роки тому

      Что если всеразрушающая сила столкнётся с не разрушаемым объектом?
      Или ничего не произойдёт или будет бесконечное и бессмысленное противостояние.
      Если произойдёт иное, то либо сила была не такой уж "всеразрушающей", либо объект был не таким уж и "не разрушаемым".

    • @mikhailkhatuntcov1483
      @mikhailkhatuntcov1483 2 роки тому

      @@ekve9 и всё же что будет?

  • @GGamess
    @GGamess Рік тому

    ienumerable?

  • @Ogur4ikHrustit
    @Ogur4ikHrustit 2 роки тому +3

    Я правильно понимаю?:
    Подписавшись на событие ,оно может оповестить и через очень большое время в нужный момент?
    Делегаты нужны в первую очередь для инкапсуляции?
    Я просто который урок смотрю/читаю,вроде понимаю как работает,но не понимаю как это применить мне в моем пет проекте ,просто не могу въехать в суть надобности этих двух штук(

    • @codaza-channel
      @codaza-channel  2 роки тому +6

      Нет-нет, пока Вы еще путаетесь. Но это очень-очень хорошо, так как путаница скоро закончится) Оповещение через "большое время" это не про события. События - это скорее про мгновенное оповещение и мгновенную реакцию на них. Например, у вас есть текстовое поле (пусть будет вес товара на рынке) и вы хотите выводить пользователю подсказку о том, что больше 40 кг продавать нельзя. Вы делаете событие на тот случай, когда пользователь вводит число, превышающее 40. Кто-то слушает это событие и при его получении показывает красную рамку или красное сообщение и т д.
      Или у вас какое-то сложное сетевое приложение, и вы видите, что вышел из строя какой-нибудь switch. Вы делаете событие и где-нибудь на форме мониторинга выводится оповещение оператору или высылается sms, например.
      Делегаты - это про делегирование. То есть нам нужно, чтобы логику выполнил кто-то извне. Например, расчёт процента для налога. У кого-то 13%, у кого-то 18% + дополнительная логика и т д.

  • @tomasgammister5776
    @tomasgammister5776 2 роки тому

    Полез в делегаты, так как не могу вызвать метод с параметрами через Invoke, указав параметры именно в самом Invoke. Намекнули копать в сторону делегатов. Но пока не понял, поможет мне эта тема ?)

    • @codaza-channel
      @codaza-channel  2 роки тому

      Не знаю точно Вашу ситуацию, но из представленной Вами информации могу предположить, что делагаты не имеют отношения к вопросу. Вероятно Вам следует использовать вызов метода через рефлексию и передать необходимые параметры через массив. Посмотрите информацию по этой ссылке, возможна она окажется полезной:
      stackoverflow.com/questions/38037614/invoke-method-with-reflection-pass-through-parameters-and-receive-a-return-value

  • @paul.antares
    @paul.antares 2 роки тому

    Привет!
    Может быть я плохо дважды посмотрел ролик - не сплю целую ночь, ищу ответы. Вопрос в от в чем - зачем нужны события, если можно обычный метод вызвать и в этом методе вызывать другие методы? В чем такая ключевая фишка событий?

    • @codaza-channel
      @codaza-channel  2 роки тому +9

      Привет!
      Конечно, мы можем вызывать обычные методы и даже должны это делать 🙂 Мы ни в коем случае не должны использовать события если сможем обойтись обычными методами. Событийная модель применяется, когда обычных методов нам не хватает. Например, когда вы создаете библиотеку. Вы не можете знать кто будет пользователем вашей библиотеки и из кода вашего класса вам нужно делать оповещения. То есть, вы просто не знаете какие методы нужно вызывать, но знаете, что какие-то точно нужно, потому в работе вашей библиотеки могут быть заинтересованы те, кто ее использует. Поэтому вы делаете что-то вроде слота подключения (событие) через который, другие люди могут передавать вам ссылки на методы, которые вы сможете вызывать.
      Если говорить супер грубо, но, чтобы вы уловили суть, события - это “дырка” в вашем классе, через которую вы сможете общаться с “другими”, но кто будут эти “другие” на момент создания программы вам неизвестно.
      Например, ваш класс отсылает SMS-сообщения и кому-то нужно считать все отосланные SMS-ки. Вы делаете эту дырку (событие) и производите оповещение после каждой отосланной SMS-ки. И все (кому это надо) подписываются на ваше событие и реагируют на него как хотят (например, считают количество отправленных SMS).

    • @paul.antares
      @paul.antares 2 роки тому +3

      @@codaza-channel спасибо большое!

  • @NikitaJe_
    @NikitaJe_ Рік тому

    Автор ты вернешься?

  • @NikitaJe_
    @NikitaJe_ Рік тому

    А куда автор делся?

  • @isagidaiki
    @isagidaiki 2 місяці тому

    пожалуйста вернитесь с новыми силами и роликами

  • @Stalker_911
    @Stalker_911 2 роки тому

    Я так понимаю, что нужно стараться писать меньше функций и больше делегатов в коде?

    • @codaza-channel
      @codaza-channel  2 роки тому +1

      Нет, такой вывод неправильный. События, делегаты, методы, классы и т. д. - всё это различные инструменты, которые позволяют решать возникающие задачи. Все они должны применяться уместно. Не должно быть такого, что вы стараетесь применять что-то чаще, а что-то реже. Вы всегда должны задавать себе вопросы и давать на них ответы. Например:
      В действиях моего класса могут быть заинтересованы другие классы? Если да, то беру событие.
      Для работы моего метода потребуется внешняя логика? Если да, то беру делегат.
      Мой класс обязан знать логику расчета? Если да, то беру метод.

    • @Stalker_911
      @Stalker_911 2 роки тому +1

      @@codaza-channel Спасибо, теперь начинаю понимать. И да, ваши видео, ОЧЕНЬ крутые.

  • @zergzerg4844
    @zergzerg4844 2 роки тому

    Я чето все-равно не понял. Разница в том что делегат может возвращать параметры а событие нет ?. По сути чтобы оба типа жду ссылку на метод извне и будут по своему обрабатывать данные, в зависимости какой метод в них записали. Но делегат я могу создать такого же типа void как событие зачем мне событие тогда нужно?

    • @codaza-channel
      @codaza-channel  2 роки тому

      В ролике я попытался объяснить концептуальное отличие между делегатами и событиями. Для каждой задачи есть своя абстракция. Если у вас есть модель события, зачем вы хотите использовать делегат в модели с событием? 🙂 Задумайтесь немного над этим вопросом. Вот другой пример: в переменной типа double мы можем хранить целочисленные значения типа integer, может попросить Microsoft убрать этот тип из dotnet? 😉 Вывод, к которому я подталкиваю, заключается в том, что необходимо брать правильную абстракцию подходящую под решение задачи.

    • @zergzerg4844
      @zergzerg4844 2 роки тому

      @@codaza-channel Спасибо за объяснение, подумаю на этим

  • @kalobyte
    @kalobyte 2 роки тому

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

  • @korobok653
    @korobok653 2 роки тому +1

    Нихуя не понял, но очень интересно

  • @АндрейВолклов
    @АндрейВолклов 6 місяців тому +1

    С сотрудниками вообще не понятно, проще примеры надо.100 раз пересмотрел и не понял.

  • @Bushido_Cat
    @Bushido_Cat Рік тому

    Все очень интересно, но ничего не понятно

  • @РоманХонда-щ7ъ
    @РоманХонда-щ7ъ 2 роки тому +1

    Вообще не понятно. Информация явно не для тех кто хочет понять что такое событие. Для тех кто уже знает это

    • @codaza-channel
      @codaza-channel  2 роки тому +2

      Мне очень жаль, что видео не помогло Вам. Безусловно, для его просмотра необходимо обладать некоторыми знаниями о программирования и C# в частности. Ваш текущей уровень знаний мне неизвестен, поэтому сложно предположить, что именно вызывало у Вас проблему в понимании. Попробуйте вернуться к видео позже. Уверен, Вы всё же получите от него пользу в будущем 🙂

  • @AizarkLizard
    @AizarkLizard 2 місяці тому

    Много воды. Даже на х2 скорости утомительно ждать когда наконец перейдут к делу

    • @misha-f1k
      @misha-f1k 2 місяці тому

      м ты смотришь ролик на ютубе и жалуешься на воду? иди на хабр гитхаб и тд

  • @it-tb8od
    @it-tb8od 7 місяців тому

    Твою мать, даже такое объяснение не понял. Как-же туго идет эта тема, просто ужас.