Делегаты (delegate) и события (event) в C# - Учим Шарп #15

  Рет қаралды 85,286

CODE BLOG

CODE BLOG

5 жыл бұрын

Делегаты (delegate) и события (event) в языке программирования C#
На этом занятии мы познакомимся с событийной моделью в языке программирования C#. Мы узнаем, что такое делегат (delegate), что такое событие (event), как они связаны и чем отличаются. Также научимся создавать обработчик события (handler), подписывать и отписывать обработчик события, передавать информацию о событии с помощью аргументов (event args).
-----------
ПОДПИШИСЬ на соцсети:
🔴 TELEGRAM: bit.ly/tg_codeblog
🔴 VK: bit.ly/vk_codeblog
🔴 INSTAGRAM: bit.ly/inst_codeblog
🔴 Яндекс Дзен: bit.ly/zen_codeblog
🔴 FACEBOOK: bit.ly/fb_codeblog
🔴 TWITTER: bit.ly/twit_codeblog
🔴 Мой блог: bit.ly/site_codeblog
-----------
ПОДДЕРЖИ развитие CODE BLOG:
💲 Донат: bit.ly/donate_codeblog
💲 Спонсорство: bit.ly/patreon_codeblog
-----------
СМОТРИ мои обучающие курсы:
👉 УЧИМ ШАРП: bit.ly/cs_codeblog
👉 ПРАКТИЧЕСКИЙ ИНТЕНСИВ #1: bit.ly/fit_codeblog
👉 ПРАКТИЧЕСКИЙ ИНТЕНСИВ #2: bit.ly/crm_codeblog
👉 СТРУКТУРЫ ДАННЫХ: bit.ly/ds_codeblog
👉 АЛГОРИТМЫ СОРТИРОВКИ: bit.ly/sort_codeblog
👉 ОТВЕТЫ НА ВОПРОСЫ: bit.ly/faq_codeblog
👉 IT ПЕРЕОЗВУЧКА: bit.ly/resound_codeblog
👉 НЕЙРОННАЯ СЕТЬ: bit.ly/ai_codeblog
👉 ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ: bit.ly/pattern_codeblog
👉 CODE REVIEW: bit.ly/review_codeblog
👉 CLR via C#: bit.ly/clr_codeblog
-----------
Кстати, меня зовут Шванов Вадим, и я профессиональный .NET разработчик с 2011 года и автор этого канала CODE BLOG. Я рассказываю про IT технологии и веду абсолютно бесплатный курс по языку C# с нуля. В его рамках мы рассмотрим как базовый синтаксис языка C Sharp, так и его практическое применение и специальные технологии, такие как ASP .NET, .NET Core, ASP.NET MVC, Unity, WPF, структуры данных и алгоритмы, с#, dotnet, паттерны проектирования, информатика, csharp, программное обеспечение и многое другое. Для меня важно не только показать практическое применение языка си шарп, но и объяснить основную идею и базовые понятия Computer Science. В качестве основного инструмента разработки используется Visual Studio c# и проекты на Visual c#. Если вам нравятся такие каналы как хауди хо, айти борода, Soer или ExtremeCode, то здесь вам точно понравится.
-----------
#codeblog #программирование #csharp #ityoutubersru #программист #разработка

Пікірлер: 114
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Статья, в которой расписана коллекция книг для изучения C#. Ссылка на архив с книгами В КОНЦЕ статьи, а в самой статье описан порядок прочтения. vk.com/@codeblog-c-podborka-obuchauschih-materialov-ot-novichka-do-profi
@vladimirmanzhula2730
@vladimirmanzhula2730 3 жыл бұрын
а есть рабочая ссылка на архив?
@user-ql6xj3tj8o
@user-ql6xj3tj8o 3 жыл бұрын
Статья удалена(, добавьте пожалуйста рабочую ссылку
@M1llenium
@M1llenium 2 жыл бұрын
Добрый день. А есть список рабочий и на гугле, например. В Украине тяжко с контактом
@eugenekrutoy1475
@eugenekrutoy1475 4 жыл бұрын
Я не могу сдержать эмоций! Я прямо чувствую как в моем мозге, образуются новые нейронные связи. Как же приятно смотреть эти видео!!! Еще раз спасибо!
@reHgoc
@reHgoc 4 жыл бұрын
мне очень нравятся метафоры, которые ты употребляешь (про бытовой уровень), так становится гораздо яснее, спасибо за урок!
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Рад помочь )
@v0s7er
@v0s7er 3 жыл бұрын
Для понимания я представил делегат в своей голове так: есть методы - почистить зубы, заправить кровать, расправиться кровать, поесть, собираться на работу. И мы можем просто создать два делегата: утро и вечер, добавляя туда соответствующие методы. И то есть нам не нужно вызвать все методы, мы просто вызывает один делегат, поэтому все наши методы, которые мы в него поместили - выполнятся.
@user-dv1nc2xo2w
@user-dv1nc2xo2w 2 жыл бұрын
А они случаем не должны иметь одинаковую сигнатуру?
@user-zp1uf8ty1y
@user-zp1uf8ty1y Жыл бұрын
@@user-dv1nc2xo2w должны
@benjaminBTN
@benjaminBTN 10 ай бұрын
@@user-dv1nc2xo2wв сигнатуру подставляешь себя, и тогда именно ты чистишь зубы, заправляешь кровать и т.д.
@alvoltta
@alvoltta 4 жыл бұрын
а вот и подъехала тема, которую я уже с 3го захода понять не могу. Вадим, огромное спасибо за ваш труд!
@user-wt4gr3wn7j
@user-wt4gr3wn7j 4 жыл бұрын
оо я думал я один такой)
@eugenekrutoy1475
@eugenekrutoy1475 4 жыл бұрын
@@user-wt4gr3wn7j оо, поверь, ты не один!
@yriktop5756
@yriktop5756 4 жыл бұрын
А я с первого раза ну вот интерфейсйс раза с 4
@rustamkhalilov5717
@rustamkhalilov5717 Жыл бұрын
Из всего многообразия учебных материалов по данной теме Ваш самый лучший!Спасибо Вам большое,что делитесь накопленным опытом и знаниями!
@user-zj4jv5vv8r
@user-zj4jv5vv8r 4 жыл бұрын
Красавчик ! Ты единственный кто доходчиво объяснил делегаты. Спасибо.
@Imperion25
@Imperion25 4 жыл бұрын
Большое спасибо за уроки! Все очень доходчиво и понятно объясняете. К примеру на делегатах и событиях у другого преподавателя я 4 раза пересматривал его видеоуроки, ничего не понял, затем пошел читать Эндрю Троелсона об этом, там вообще так написано, что я ни слова не понял, затем на Metanit отправился, там более менее внятно и понятно было. А здесь, я прям постиг всю сущность делегатов и событий ). Действительно, очень все понятно теперь и уже не так страшна эта тема для меня. Спасибо!
@user-hm8vy9ld9e
@user-hm8vy9ld9e 3 жыл бұрын
Смотрю и пересматриваю. Лайки ставлю) спасибо за уроки💪🏻 Вообще святой человек) такие уроки и бесплатные))))
@huck_pro
@huck_pro 3 жыл бұрын
спасибо тебе Вадим без это-го курса я бы не знал основы с# :)))
@Vladimir___M
@Vladimir___M 4 жыл бұрын
Спасибо за уроки, хорошо помогают разобраться в программировании :)
@mammadovrashad339
@mammadovrashad339 Жыл бұрын
Ты просто красавчик. Была проблема с делегатами, но после просмотра занятия, вник! 🔥
@user-gu1fb7nu2e
@user-gu1fb7nu2e 4 жыл бұрын
Спасибо за курсы, Вадим!!! Окончательно "въехал" в события. P.S.: Что-то навеяло... в конце декабря 2018 года был в Курске. А буквально через год, транзитом через Украину, уже в Чехии. Жизнь она такая. Успехов тебе во всем. Удачи.
@KOCadm
@KOCadm 4 жыл бұрын
Супер! только туту я понял быстро суть по этой теме! Спасибо!
@CODEBLOG
@CODEBLOG 5 жыл бұрын
На этом занятии мы познакомимся с событийной моделью в языке программирования C#. Мы узнаем, что такое делегат (delegate), что такое событие (event), как они связаны и чем отличаются. Также научимся создавать обработчик события (handler), подписывать и отписывать обработчик события, передавать информацию о событии с помощью аргументов (event args).
@Keeytari
@Keeytari 5 жыл бұрын
Топовые уроки! Приятно тебя слушать!
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Спасибо )
@nerub9690
@nerub9690 4 жыл бұрын
Спасибо, наконец-то понял что за ивенты используются в GameMaker b Unity))
@alexivanov8239
@alexivanov8239 2 жыл бұрын
Хорошее объяснение, очень понравилось. Получилось въехать почти сразу, до этого смотрел видео на учебном курсе и читал Троелсена, было тяжко.
@stanlygetz9616
@stanlygetz9616 4 жыл бұрын
Спасибо за отличные уроки!Очень доходчиво и понятно объясняете!
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Всегда пожалуйста )
@dabroful
@dabroful Жыл бұрын
Вадим, спасибо вам за то, что вы сделали
@aleksandercross5936
@aleksandercross5936 4 жыл бұрын
Спасибо вам большое, вы доступно объясняете!
@CODEBLOG
@CODEBLOG 4 жыл бұрын
Всегда пожалуйста )
@8stwd
@8stwd Жыл бұрын
Очень помогают ваши видео в обучении. Привет из 2022 ✌️
@dannycyberwalker
@dannycyberwalker 5 жыл бұрын
Наконец-то ёлку донарядил!
@ilyanaumov4251
@ilyanaumov4251 3 жыл бұрын
Огромное спасибо, всё стало понятно. До этого видео читал Рихтера, чуть в петлю не полез)
@alazarnfreeman9216
@alazarnfreeman9216 3 жыл бұрын
рихтера читают те, которые знают язык
@69rus42
@69rus42 Жыл бұрын
Первый человек на ютубе, которого слушаю на скорости 2.0
@eugenekrutoy1475
@eugenekrutoy1475 4 жыл бұрын
Спасибо! Ибо спас ты меня, моя самая больная тема!!!!!
@andy_top6676
@andy_top6676 Жыл бұрын
Спасибо за видео!!!
@qwerty89993
@qwerty89993 9 ай бұрын
Спасибо вам большое
@user-lx5vv3uu8u
@user-lx5vv3uu8u 4 жыл бұрын
Спасибо!
@1200eojf
@1200eojf 2 жыл бұрын
Уроки топ спасибо вам
@user-eb4jf2eq6q
@user-eb4jf2eq6q 2 жыл бұрын
Благадарю
@giorgigogeishvili8397
@giorgigogeishvili8397 5 жыл бұрын
Perfect. მაგარია !
@user-uz1ol5qe5j
@user-uz1ol5qe5j 3 жыл бұрын
Здравствуйте Вадим! Спасибо за видео по такой сложной теме. Скажите можно ли с помощью делегатов и событий реализовать счетчики по типу(трёхразрядный двоичный счетчик;четырехразрядный десятичный счетчик; или же счетчик даты типа "месяц,год")? Заранее спасибо!
@alexcafpir8166
@alexcafpir8166 4 жыл бұрын
Данное видео, самое лучшее объяснение, что такое Делегат!!! Из просмотренных мной. Пытаясь понять, что это за штука такая пересмотрел несколько объяснений от разных авторов которые начинают городить куй знает чего, когда ты понимаешь, что ни хера не понимаешь 🤷‍♂️🤦‍♂️. А ведь все очень просто из объяснений тут понял, что при вызове этого делегата исполняется некий список\очередь из разных методов (совпадающих по сигнатуре), которые можно туда добавить или удалить по мере надобности 👍 Немногу критики: у автора немного с написанием проблемы, начнет писать, потом исправит, потом зачеркнет, потом вообще удалит и напишет совершенно по другому...😂
@CODEBLOG
@CODEBLOG 4 жыл бұрын
У меня просто с многозадачностью не очень хорошо, особенно в начальных стримах было. Нужно и говорить, и думать что говорить, и писать... не такая простая задача, как может показаться ) ну а то, что смог объяснить делегаты - очень рад :)
@catdog_ussr317
@catdog_ussr317 4 жыл бұрын
Зато Вадим пишет "вживую"! И именно это ценно!
@alexcafpir8166
@alexcafpir8166 4 жыл бұрын
@@catdog_ussr317 когда как, иногда короткий гайд где все по четко без воды удобней чем сидеть 1-2 часа, у меня лично терпения не хватает...😅
@JustEnergyFlow
@JustEnergyFlow Жыл бұрын
Благодарю
@musheghsahakyan8857
@musheghsahakyan8857 5 жыл бұрын
Спасибо за уроки !
@CODEBLOG
@CODEBLOG 5 жыл бұрын
Всегда пожалуйста )
@Sergioshe
@Sergioshe 4 жыл бұрын
Спасибо
@kn0ww641
@kn0ww641 Жыл бұрын
1:30:00 Следующая тема - потоки
@rbay6961
@rbay6961 4 жыл бұрын
Здравствуйте. А скажите: есть ли какой-либо майт, ка котором можно найти достаточное количество практических заданий?
@essanger7818
@essanger7818 4 жыл бұрын
Докуя заданий. Есть ещё metanit.com
@Veyron104
@Veyron104 2 жыл бұрын
Нормальная камера была) её просто можно справа поставить, пусть чат закрывает) хотя он лишний в записи, но даже если его не будет, то можно держать камеру в правой стороне, нам же не нужен "Обозреватель решений"
@user-kv4nv7ic8c
@user-kv4nv7ic8c 3 жыл бұрын
Вы тоже на 43:40 - 44:25 прочувствовали, как ваше сознание расширяется со вселенской скоростью?)
@cokolol3049
@cokolol3049 Жыл бұрын
53:13
@maksim3281
@maksim3281 4 жыл бұрын
Т.е есть делегат - это перекладывание ответственности за реализацию метода на вышестоящий уровень? Т.е есть мы знаем что что-то должно произойти, а вот что именно мы определим потом? А еще с помощью делегата можно вызывать цепочку методов. Правильно ли я интерпретировал понятие делегата или события? А еще хотелось бы узнать
@OpalGooDog
@OpalGooDog 3 жыл бұрын
Да, указатель на метод, "лист" с методами с сигнатурой делегата, где мы сами можем решать или пользователь удалить добавить какой либо метод, коротко так
@andrey_khrulkov
@andrey_khrulkov 3 жыл бұрын
Как проверить, что делегат уже подписан на метод и не подписать повторно? Можно код проверки?
@ymts_vladyslav3707
@ymts_vladyslav3707 4 жыл бұрын
Сложная конечно тема , смотрел у других ютуберов (где то 4 видео) , но не понимал куда пихать эти делегаты, куда пихать события, все пихают в разные места , но не туда куда нужно. Вся тема стала понятной ТОЛЬКО на университетском примере "ping-pong"
@user-mx5mi6uu8f
@user-mx5mi6uu8f 3 жыл бұрын
Скажите, пожалуйста, какую из этих книг (в самом начале) прочитать самой первой?
@olegpogorelov5223
@olegpogorelov5223 3 жыл бұрын
Почитай Шилдта и будет тебе счастье )
@Iamflip6
@Iamflip6 3 жыл бұрын
Давно скачал все книги, но так как статья удалена, полностью потерял порядок прочтения литературы, не подскажешь пожалуйста в каком порядке читать?
@kalobyte
@kalobyte 3 жыл бұрын
делегаты - это как в сях указатель на функцию можно в массив положить названия функций и потом по очереди их вызвать например функции, которые реализуют какие-то эффекты светодиодные на адресных лентах функции уже забиты в коде, но ты хочеш выбрать только нужные тебе и в нужном порядке вот так и набиваются имена функций в делегат, а потом делегат вызывается один раз в коде и вызываются функции эффектов в нужном порядке правда я пока не знаю, где в шарпе такое можно использовать
@murodaliismailov2503
@murodaliismailov2503 Жыл бұрын
Вопроc можно ли служать с помощью event изменение базу данных?
@egormatuk6462
@egormatuk6462 4 жыл бұрын
искал анонимные методы,но знаете что"Искал медь но нашел золото"
@agentsmit09
@agentsmit09 3 жыл бұрын
Сколько пытался понять что такое делегаты и с чем их едят. Вот сразу где-нибудь написали бы что это указатель на метод, и сразу все понятно что это и где использовать.
@sdfsdfsdfsdf2712
@sdfsdfsdfsdf2712 3 жыл бұрын
везде так и написанно. Ты просто тупой гуманитарй и программироание это не твое.
@klaxwork1208
@klaxwork1208 2 жыл бұрын
А в каких случаях используются делегаты?
@KirillCheremisin
@KirillCheremisin 3 жыл бұрын
монитор в монитор)
@A1xarT
@A1xarT 4 жыл бұрын
7:03 :)))
@denemy
@denemy 3 жыл бұрын
^_^
@user-yg9rq6xn3o
@user-yg9rq6xn3o 3 жыл бұрын
26:39 Не "в этот же делегат" А в другой экземпляр делегата Того же типа (type Delegate) 1:12:38 Событие без делегата или (авто делегат)
@d2life362
@d2life362 5 жыл бұрын
все хорошо, но блин зашел именно про события прояснить, и тут примеры с хрен поймешь какими методами(( т.е чтоб понять работу самого события нужно допереть до работы метода с этой датой итп, очень надеялся на объяснение основанном на обыденном методе с интами итп(( ладно пойду дальше поищу чтонить, мб уже осилю эти события наконец... за видос лайк все же!
@CODEBLOG
@CODEBLOG 5 жыл бұрын
в будущем я планирую сделать более короткие видео по отдельным темам и более простыми объяснениями
@user-vg6gu8hc6w
@user-vg6gu8hc6w 4 жыл бұрын
Согласен тоже не сразу допер и не все, пока в коде ковыряться не стал... чтоб подобное допереть нужна практика и несколько разных задач примирения. а то не особо отложилось где можно применять Калькулятор со встроенным методом, Вадим больше пример плиз )
@zloyenot3989
@zloyenot3989 4 жыл бұрын
зачем нужны события? Можно же просто использовать функции? Или я что-то не понял?
@user-so1bu9cw5g
@user-so1bu9cw5g 3 жыл бұрын
Как пример для работы с window form
@cors1k495
@cors1k495 4 жыл бұрын
Где можно посмотреть код из этого урока?
@CODEBLOG
@CODEBLOG 4 жыл бұрын
К сожалению видимо этот урок я забыл опубликовать на github. Мой косяк, извиняйте :(((
@kipneer3879
@kipneer3879 3 жыл бұрын
Как при ошибке написания например имени поля, не стирать всё имя, а продолжить печатать с интелисенсом? У меня при нажатие backspace подсказка не появляется. На 1:10:10, где-то так, Вадим нажимает на клавишу, и подсказка появляется. Заранее спасибо)
@omoloni
@omoloni 3 жыл бұрын
ctrl+пробел
@kipneer3879
@kipneer3879 3 жыл бұрын
@@omoloni, спасибо тебе большое)
@5111
@5111 3 жыл бұрын
Про домашку забыл 😂
@user-so3jo4bu1o
@user-so3jo4bu1o 4 жыл бұрын
Вы не правильно используете класс Random. Random это генератор последовательности псевдослучайных чисел завязанный на данный момент времени. Из-за того, что при каждом обращении вы вызываете его заново он отдаёт вам то же самое первое число. Потому все значения одинаковые. Вместо этого нужно создать отдельный экземпляр класса Random и каждый раз обращаться к этому конкретному экземпляру. В этом случае при каждом обращении к нему счётчик будет прокручиваться и значения будут разные.
@nomercy1566
@nomercy1566 3 жыл бұрын
Ребята помогите оболтусу! Как сделать кнопку сброса всех событий в программе, так чтобы она вернулась в исходное положение, как будто её только запустили! За ранее огромное спасибо!!!
@agentsmit09
@agentsmit09 3 жыл бұрын
Это тебе товарищ на www.cyberforum.ru или StackOverflow с такими вопросами обращаться
@nomercy1566
@nomercy1566 3 жыл бұрын
@@agentsmit09 спасибо большое,уже разобрался😊
@user-cb4zt4ty6f
@user-cb4zt4ty6f 2 жыл бұрын
Если бы возвращаемое значение было бы первым, было бы невозможно определиться - это возвращаемое значение без аргумента, или аргумент без возвращаемого значения
@kodersurocecode267
@kodersurocecode267 4 жыл бұрын
я не знаю где это можно применить, можно дз?
@CODEBLOG
@CODEBLOG 4 жыл бұрын
На начальном этапе это встречается не так часто, пока, будет достаточно просто знать, что они есть )) потом как-нибудь сделаю обязательно практическое видео по применению
@AN-ts4rf
@AN-ts4rf 4 жыл бұрын
a Lesson15 на гитхабе не нашел
@cyberdeo6354
@cyberdeo6354 3 жыл бұрын
блин на скорости 1,5 твой говор кажется обычным, чем на обычной скорости
@ivanomelchenko1895
@ivanomelchenko1895 3 жыл бұрын
+++
@Lorienl2master
@Lorienl2master 3 жыл бұрын
у 21 людей будут темки
@user-fp6pe4ne1q
@user-fp6pe4ne1q 6 ай бұрын
Как по мне то это просто массив указателей на ф-и если проводить паралель с с++🤔
@ambassadorcherta7615
@ambassadorcherta7615 2 жыл бұрын
Где Домашнее задание?
@kdenisinfo
@kdenisinfo 2 жыл бұрын
Очень хоршая работа от человека из новой з-еландии с 25+ летним опытом разработки c++/c#
@user-ry4vh8fd2f
@user-ry4vh8fd2f 4 жыл бұрын
У Вас рандом тупо не успевает получить новое число
@A1xarT
@A1xarT 4 жыл бұрын
Может он просто один раз вызывается?
@pluralsightrus723
@pluralsightrus723 3 жыл бұрын
вот еще классные уроки kzbin.info/www/bejne/q4jVoYKrl8asi6s
@user-bd3ij4op5k
@user-bd3ij4op5k 3 жыл бұрын
Ты либо рассказывай ,либо отвечай на тупые вопросы в чатике. Очень раздражает такой формат подачи материала.
@OpalGooDog
@OpalGooDog 3 жыл бұрын
Вопросы которые не раскрыты в коде, могут быть полностью раскрыты в ходе ответов на вопросы, не все думают одинаково
@user-bd3ij4op5k
@user-bd3ij4op5k 3 жыл бұрын
@@OpalGooDog Были бы вопросы еще по теме и умные то это бы так сильно не раздражало .
路飞太过分了,自己游泳。#海贼王#路飞
00:28
路飞与唐舞桐
Рет қаралды 39 МЛН
A teacher captured the cutest moment at the nursery #shorts
00:33
Fabiosa Stories
Рет қаралды 57 МЛН
C# Events События
14:36
codaza
Рет қаралды 50 М.
Интерфейсы на практике
7:34
ExtremeCode
Рет қаралды 179 М.
КАК РАБОТАЕТ БРАУЗЕР?
45:23
Alek OS
Рет қаралды 134 М.
路飞太过分了,自己游泳。#海贼王#路飞
00:28
路飞与唐舞桐
Рет қаралды 39 МЛН