Тёмный

Делегаты и события на практике 

ExtremeCode
Подписаться 284 тыс.
Просмотров 152 тыс.
50% 1

Привет, друзья! В этом видео мы познакомимся с делегатами и событиями в C#, и на практике узнаем как ими пользоваться
Канал Telegram: t.me/extremeco...
● VK: bit.ly/vk_extre...
● Telegram Chat: bit.ly/telegram...
● Twitter: bit.ly/twitter_...
● GitHub: bit.ly/github_e...

Опубликовано:

 

30 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 149   
@ik2254
@ik2254 Год назад
Посмотрел уже где-то 40 раз. К 30-му вроде половина стала понятна. А к 40 снова каша в голове
@ДимычДимон-г3ю
@ДимычДимон-г3ю 7 месяцев назад
Механизм для упрощения написания кода, вроде как выглядит
@АлександрБычко-п9ъ
не такие сложности надо с толком, с расстановкой рассказывать, а не по быстрому.
@СтепанИванов-е6в
Я конечно понимаю что я ещё только начинающий, но я врубил видос, а там после фраз приветствия пошёл "белый шум"
@iAndrewMontanai
@iAndrewMontanai 7 лет назад
Если я посмотрю видео еще 2-3 раза, это поможет)?
@ExtremeCode
@ExtremeCode 7 лет назад
Конечно поможет!!! (нам) P.S. Посмотри видосик, почитай на метаните и снова нагрузи видосик. Потыкай делегаты в студии и станет понятнее.
@Mr43046721
@Mr43046721 7 лет назад
Потыкал, реально помогло.
@АлексДжаванов
@АлексДжаванов 4 года назад
@@Mr43046721 Тык такая вещь помогающая, это да!
@omoloni
@omoloni 4 года назад
нет, 23-32 минимум
@Scorpion91
@Scorpion91 3 года назад
@@ExtremeCode сук, работает, спасибо
@vv3uf8yx8g
@vv3uf8yx8g 6 лет назад
Круто-круто... Но... Где тут практика-то? Я ожидал чего-то крутого, как в "полиморфизм на практике", а получил, по сути, еще горсть теории...
@drankenwizard7602
@drankenwizard7602 3 года назад
Возникло ощущение, что автор больше хотел показать какой он умный, чем объяснить
@hardtobepsd
@hardtobepsd 4 года назад
Есть пример кода в конце, есть какое то описание случая использования вначале, но не хватает самого главного - пояснения в каких случаях оправдано использование делегатов (конкретные факторы, на которые следует обратить внимание), на основании такого случая и нужно было приводить пример. Т.е. сделать какую то простую систему (как в примере с кнопками) и показать как это должно работать. Пример же здесь с гопником и бузером ничего толкового не дает, подобных пример на ютубе и так много.
@777homosapien
@777homosapien 2 года назад
Необходимо просмотреть паттерны GoF объяснить в 10 минутном видео это невозможно!
@ShamageMSK
@ShamageMSK 5 лет назад
Привет, мои маленькие делегята =D
@vladpucka1308
@vladpucka1308 7 лет назад
расскажите про лямбда выражения подробнее если можно)
@dronstalker511
@dronstalker511 2 года назад
Единственное что могу сказать по этому уроку: На 5:31 не коробка автомат, а коробка с двумя сцеплениями, называемая преселективная (не робот)
@FrioDima
@FrioDima Год назад
Красава
@tym32167
@tym32167 7 лет назад
Видео неплохое, спасибо. Только одна поправочка (даже не поправочка, а так, косметика) - пользуйтесь фишками последних версий языка. Да и создавать каждый раз пустые EventArgs нет необходимости. Вызывайте событие так oidEnded?.Invoke(this, EventArgs.Empty); Но в целом весьма годно.
@МункоБубеев-ч8у
@МункоБубеев-ч8у 3 года назад
Что означает "?" ?
@tym32167
@tym32167 3 года назад
@@МункоБубеев-ч8у docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/member-access-operators#null-conditional-operators--and-
@vehiclesailboat
@vehiclesailboat Год назад
@@МункоБубеев-ч8у вперёд к плейлисту С# для маленьких и тупых
@nostation9424
@nostation9424 2 года назад
А код можно глянуть, чет у меня не выстроилось ничего. Как сам код выстроили покажите пожалуйста. Например там вызвали метод boozer.LetsGoDrink(). А где его создали? Или метод private void Worker() где он стоит ? В классе Boozer ? Или где? И если он приват то как его можно вызвать в другом классе Gopnik, в методе public void LetsGoShelkat() ?
@dmytrovietsu4224
@dmytrovietsu4224 7 лет назад
Дизлайк и отписка!!!
@StrikeCowaiOther
@StrikeCowaiOther 10 месяцев назад
Все здорово, но непонятно ровным счетом нихрена.😢 Еще ни одного видео по событиям не нашел понятного.
@dm-a1916
@dm-a1916 3 года назад
Жесть конечно. Видео для таких же, как автор, которые давно на событиях и делегатах собаку съели. Я в C# новичок и особого понимания после просмотра ролика по части делегатов у меня не прибавилось.
@ФедорАргунов-р3я
@ФедорАргунов-р3я 3 года назад
По сути ты можешь создать класс(строитель) и сделать в нем метод(построить), но тебе лень делать универсальный метод и просто делаешь делегат метода и используешь в классе как будто он у тебя есть. И в каждом создании класса ты можешь отдельно создать реализацию(построить дом, построить сарай) или просто подписать в уже существующий подходящий метод. А события они по сути просты. Ты ведь можешь создать кнопку в windows форм и потом запустить и нажать на эту кнопку, но ничего не произойдет, так как на нажатие не было привязано реализация чего либо. Можешь привязать на это событие хоть завершение запущенного проекта и т.д. Просто нужно аккуратно по какому то шаблону внедрить событие в свой класс, если он уж круто упрощает твою жизнь или как то может ускорить твое приложение. Ведь никому не нужны приложения, которые жрут очень много памяти почем зря
@sergei-fil
@sergei-fil 7 лет назад
Я совсем молодой маслёнок в программировании, поэтому не ругайте сильно если херню написал. Так вот, я не понял а как метод privet void Worker() потом вызвался в методе LetsGoShelkat()? Или подразумевается что у каждого класса есть свой privet void Worker()?
@SelenaGomezFan715
@SelenaGomezFan715 5 лет назад
​@Эрнест Резерфорд Спасибо за ответ!
@АлександрМояфамилия-п6ъ
Прикольная метода обучения, через шутки!
@igorcoolman
@igorcoolman 7 лет назад
худшего объяснения я еще не слышал
@el_riochannel9060
@el_riochannel9060 7 лет назад
К сожалению, бывает и хуже. Но данная тема таки да, как будто не раскрыта.
@Shebutnyartalu
@Shebutnyartalu 9 месяцев назад
Я обдристался на 6-й минуте
@MrOverlord243
@MrOverlord243 7 лет назад
Мжна помедленее?Я записываю! Реально не успеваешь вкурить че там говорят, показывают код, потом он резко исчезает, появляется другой, а щелкать каждые 5 сек на паузу не ок.
@ExtremeCode
@ExtremeCode 7 лет назад
Ставь скорость видео 0.5. И тогда твоим лектором станет человек, как будто страдающий бессонницей и находящийся под супер клеем. Прямо как будто с братишкой за бутылочкой крепкого в 2 часа ночи обсуждаете не политику, а код.
@iAndrewMontanai
@iAndrewMontanai 7 лет назад
не успел пошутить про 0.5
@srg_ni2614
@srg_ni2614 6 лет назад
видео создано для того чтобы лучше понять делегаты, но если ты записиваешь то лудше почитай на metanit или MSDN
@MrOlezhandr
@MrOlezhandr 5 лет назад
в большой семье надо все быстро делать
@andrewgrayson5835
@andrewgrayson5835 6 лет назад
Ничего не понятно, что за EventArgs? Что значит LetsGoDrink(), что за LetsGoShelkat()? Ааа, мой мозг
@MrOlezhandr
@MrOlezhandr 5 лет назад
возникли те же вопросы. +
@ddss-x7r
@ddss-x7r 2 месяца назад
4:51 5:04 sender анонимные методы замыкания лямбда-выражения обобщенные делегаты контравариантность в делегатах вариантность в обобщенных делегатах
@kasdo6649
@kasdo6649 2 месяца назад
4:51 5:04 sender анонимные методы замыкания лямбда-выражения обобщенные делегаты контравариантность в делегатах вариантность в обобщенных делегатах
@vladmosiychuk
@vladmosiychuk 7 лет назад
OilEnded?.Invoke(this, EventArgs.Empty);//Вместо if (OilEnded != nu...
@ДенисЕгоров-ь3в
@ДенисЕгоров-ь3в 7 лет назад
Ещё давно EventArgs.Empty придумали для такого случая
@vladmosiychuk
@vladmosiychuk 7 лет назад
Den Gen Исправил =)
@igorgrosu6872
@igorgrosu6872 4 года назад
Вчера узнал, кто такой фаггот, сегодня пригодилось, вот это реально полезные знания: понимать отсылки из смешных видосов
@СергийЕрмилов
@СергийЕрмилов 4 года назад
Супер. Классно. Чем больше смотришь, тем больше понимаешь. А если через час просмотра этого видео чай сходить налить, так вообще 4е измерение постигнуть есть шанс)) А если серьезно, можно как-то видеоряд смещать на пару секунд вперед? Я, как особо одаренный, слушая, не успеваю понимать че на картинке нарисовано, а когда предложение заканчивается, пытаюсь на пробел нажать и сопоставить увиденное с услышанным, но не успеваю, картинка убегает. Так и тыкаю ползунок туда сюда)) У второго оратора, я такого не замечал - убегающих картинок.
@KOKERzeroZEROseven
@KOKERzeroZEROseven 4 года назад
все равно не понятно зачем оно вообще нужно если просто можно написать один метод но с разными атрибутами.
@glebbsif
@glebbsif 3 года назад
Ничего не понятно но очень интересно. Второго диктора интереснее и информативнее слушать)
@Vovka118_2
@Vovka118_2 2 месяца назад
Надеюсь я смогу в с# и сделаю свой псевдо движок(просто лаунчер для клона армы(микса армы и таркова))
@antonchechenev7078
@antonchechenev7078 4 месяца назад
Вместо делегатов использую интерфейсы ( foreach obj in Iobjects)
@slimeball3209
@slimeball3209 Год назад
не понял, а какого черта нельзя функцию подписать на эвент? синтаксис вроде адекватно будет выглядить типа событие += функция(); зачем конкретно делегат юзать?
@СтепанИванов-е6в
Брат, ты объясняеть слишком быстро, перелистываешь картинки так быстро, что хрен успеешь всё прочитать и составить в голове хоть какую то логику!
@MrOlezhandr
@MrOlezhandr 5 лет назад
он просто если медленней будет, то то, что в начале сказал - забывается
@justafish_
@justafish_ 2 года назад
Вахахахах ну и пердолинг у вас в сшарпе. Может еще отжаться 10 раз и бабушку через дорогу перевести нужно, чтобы функцию как аргумент передать? В питоне вот любая функция - объект по умолчанию и ее можно передавать куда хочешь без всяких делегатов
@TheZloivan
@TheZloivan 7 лет назад
Ребята пожалуйста запилите видосик про многопоточность. Как и когда ей пользоватся.
@Ramzes200986
@Ramzes200986 2 года назад
ее пользуются, если тебе необходимо, чтоб параллельно выполнялся, еще какой нибудь код
@nikschannelmusicexperiment8740
@nikschannelmusicexperiment8740 4 года назад
Нифига не понял, но очень интересно....
@aleksandercross5936
@aleksandercross5936 5 лет назад
4:06 как получить инфу из "delegates"? Не пойму что список возвращает
@mk72v2oq
@mk72v2oq 7 лет назад
Про синтаксический сахар вроде тех же лямбда-замыканий будет выпуск? Довольно интересная тема, мало где освещаемая.
@ndr1111
@ndr1111 2 года назад
Было-бы чуть по-медленнее и без музычки, было-бы идеально, а так - хреново.
@slimeball3209
@slimeball3209 Год назад
Кажется на второй минуте я понял: Переключаешь рычажок вверх, и у тебя функция вычисляет что (1,2) это 1+2, переключаешь рычажок вниз и функция теперь думает что 1*2. То есть делегат это штука которая позволяет менять операции внутри функции не меняя вводимые в скобках аргументы что то типа интерфейса а эвенты и так понятно зачем нужны - чтобы пинать кого то без проверщиков типа if hernya==true допустим у нас один код выполется 1 раз в секунду а второй 1 раз в 10 секунд, просто вызывая функцию в первом коду мы вызовем еë 10 раз в 10 секунд, а создав эвент сколько бы раз он не повторился, функция выполнится только 1 раз в 10 сек, ровно в тот момент когда будет вызван второй код по порядку второго кода. То есть подписчик чекает состояние и выполняет функцию на своих условиях, а не по первому пинку из любой точки кода. (то есть эвенты пипец как полезны в параллельных вычислениях)
@slimeball3209
@slimeball3209 Год назад
или вот еще проще if выбрано 1 функция а = выдать синий экран с текстом (текст) else функция а = выдать окно подтверждения с текстом (текст) if Нажал кнопку выполнить функцию а (текст).
@7453060
@7453060 2 года назад
Занимательно, но Страуструпом попахивает :)
@w1erley
@w1erley 3 года назад
что за слово на 3:20 ??????????? п.с : я понял там на******ет
@dad912
@dad912 Год назад
За такие методы и делегаты не стать тебе стримером на твиче
@artishoo
@artishoo 3 года назад
Промисы для маленьких и тупых?
@Antizapad7
@Antizapad7 2 года назад
Эм... На рисунке коробка не автомат, а робот.
@yevhen-studio
@yevhen-studio 2 года назад
начало получше не мог придумать?
@1001-m5u
@1001-m5u 7 лет назад
go курс по си
@qui7498
@qui7498 2 года назад
Ты чё, я не планирую умирать в 60 :(
@arttxmk
@arttxmk 2 года назад
А зачем тут субтитры на русском?
@RMarkTv
@RMarkTv 3 года назад
нифига не понял
@EAGames_unity
@EAGames_unity 3 года назад
Понятно, что нихрена не понятно...
@roxxel8167
@roxxel8167 4 года назад
Нихуя не понял, но очень интересно
@roxxel8167
@roxxel8167 2 года назад
Возвращаюсь спустя год, с огромным багажом знаний по с# по сравнению с тем, что было раньше
@Dedinside-l7n
@Dedinside-l7n 7 лет назад
Ееее интересно это вы мой комент в вк увилили?
@nemanjasekulic711
@nemanjasekulic711 2 года назад
интригант мля..))
@tranzistorz
@tranzistorz 7 лет назад
а можно где-то найти исходники из видео?)
@lev1730
@lev1730 7 лет назад
Extreme Code, запустите курс по программированию на Си
@zugzug90
@zugzug90 2 года назад
Скучно
@Собственник-т3к
@Собственник-т3к 4 года назад
5:43 Да вообще не понятно что ещё за механизм подписки. Если кто-то понял, отпишите о чём идёт речь. Потом 6:27, опять какая-то путаница, что за Keys.a? На 8:12 постоянно идёт речь об экземпляре делегата, но я его вообще здесь не вижу. Нет метода с ?Invoke. Дальше на 8:28 методы, которые даже не показаны, приходится по названию догадываться, что происходит. is / as опять же для людей кто только изучает делегаты и события вообще не понятно что это, если с этим не встречались. При чём ни один я не понял что происходит, судя по комментам. В общем, не лучший видос на вашем канале.
@DS88579
@DS88579 7 лет назад
Если параметры не используются, то логичнее объявить событие как public event Action oilEnded; Вызов события oilEnded?.Invoke(); Если нужны параметры - public event Action oilEnded; Вызов oilEnded?.Invoke(1, "Остался всего литр :))"); Обобщенные делегаты Action, Predicate и Func избавляют от необходимости городить кучу типов делегатов.
@ExtremeCode
@ExtremeCode 7 лет назад
Нихуяшеньки, сам по себе EventArgs не может нести полезной инфы, поэтому он будет всегда пустым. А все производные типы должны быть на основе базового класса EventArgs по простой причине - контравариантность. В видео рассказывалось про KeyEventArgs - благодаря тому что он унаследован от EventArgs, событие, основанное на делегате KeyPressEventHandler, можем подписать на метод соответствующий сигнатуре делегата EventHandler. То есть от конкретного типа к базовому типу. Это используется в паре фич, в графических приложениях, когда необходимо отследить факт самого нажатия на клавишу, при этом когда не нужно знать на какую именно кнопку было произведено нажатие. Событий много, и у некоторых EventArgs'ы разных типов, а ковариантность мейк зис посибле.
@КириллЧе-я5ы
@КириллЧе-я5ы 2 года назад
Вместо указателя у плюсов есть замечательные средства - лямбды, функторы, std::function… а ещё реактивные библиотеки…
@mashadzenik5821
@mashadzenik5821 3 года назад
С примером про семки и бухло в голове будто туман пропал... Говность (готовность) использовать делегаты на 1000
@aleksandr7242
@aleksandr7242 2 года назад
отличный видос. Но не для начинающего, если ты еще сам не читал что такое делигат и не трога его, то вали отсюда читать книгу. А вот для повторения или после книги отлично закрепляешь информацию
@MrOlezhandr
@MrOlezhandr 5 лет назад
Заодно понял, как работает коробка DSG) +за ясность, но! с 6:19 таки надо как-то помедленней и поглубже с куском кода (с примера) не понятно, откуда стало известно, что содержится в делегате, не ясно где подпись на это событие и что выполниться при его возникновении
@tomasgammister5776
@tomasgammister5776 3 года назад
Я так понял пули перед уничтожением можно снабдить событием и избежать связанности кода ? Это я про игровой движок...
@ramil9209
@ramil9209 4 года назад
Например у тебя есть герой и у него заканчивается хп, можно подписаться на это событие
@konstantinkozuchov4483
@konstantinkozuchov4483 7 лет назад
Слыш где инфа про Invoke BeginInvoke EndInvoke? А если найду?
@rubi6228
@rubi6228 3 года назад
это не просто коробка автомат, а коробка автомат с двумя сцеплениями
@product4287
@product4287 4 года назад
Тут типа надо обучаться или своё внимание отвлекать на плоские шутки?
@angrytaigafox
@angrytaigafox 6 лет назад
Чуваки, я вас обожаю вы лучшие!
@faridacadukova6973
@faridacadukova6973 3 года назад
Лучший! Спасибо, помогаете нам на паре программирования :)
@Gundir-ge7lh
@Gundir-ge7lh 5 лет назад
Все скомкано нихера не понятно, сыпят терменами и думают тутор сделали.
@LordZiegfrid
@LordZiegfrid 4 года назад
я все ожидал что то типа: но это все говно и все юзают реактивки
@Лазизбек
@Лазизбек 7 лет назад
Повторите еще раз, я записываю. Очень быстро, очень скомкано, и без примера. Так не делайте.
@slava6105
@slava6105 3 года назад
3:30 из java: привет, у нас всё так и происходит
@timurislamov1671
@timurislamov1671 4 года назад
Делегаты понял а события них*ена
@Bushido_Cat
@Bushido_Cat Год назад
Ничего не понятно но очень интересно
@ビターリ
@ビターリ 3 года назад
НИчего не понял но очень интересно
@ТоварищНовосельцев-ф8д
Делегат - это адвокат
@rusabvi
@rusabvi 2 года назад
3:50 чёт орнул😂
@Monstaroid172
@Monstaroid172 3 года назад
после такого начала, как-то и не знаю, нужно ли все это)
@CatWorldson
@CatWorldson 7 лет назад
Лукас поставлен. Сяп за переработку старой версии для чайников (или для кого там было)
@MrFrimko
@MrFrimko 7 лет назад
Йоу, у меня вопрос возник не по теме видео, нужна мудрость более опытных. А что входит в работу разработчика? вот сижу я 3ий год пишу на пхп+дотнет, немного документации нашего апи для клиентов. И тут мне говорят, что нужно трем серьезным клиентам помочь с внедрением нашего api и мне не понятно как это воспринимать? Старшие посчитали что я плох как разработчик и дали задачу тех поддержки? Или же для разработчиков это нормально? Мне самому технологии нравятся, приходить домой и делать пет прожекты - в радость, а теперь чет не понятно что происходит
@sp1ne2104
@sp1ne2104 4 года назад
Разработчик и не должен заниматься задачами внедрения, документации по апи есть? есть. реализация есть? есть. этого достаточно. Вот пусть техподдержка и внедряет апи: зарегают их, ключ выдадут и тд.
@kirillplakhov2343
@kirillplakhov2343 3 года назад
Только вместо Oil больше подойдёт Fuel, наверное, но это не точно;)) в любом случае весело вы это всё))
@ik2254
@ik2254 Год назад
тоже заметил. Странно, но почему-то все хорошие кодеры английский не знают, или знают на плохом уровне. А нам, маслятам только и остается что выебываться своим С2 инглишем, тк прогать мы не можем)
@lenaartemenko9240
@lenaartemenko9240 6 лет назад
Вроде все понятно, но нет))) ладно, почитаю еще, отличное видео, спс
@sigeyinit470
@sigeyinit470 7 лет назад
lol, РОФЛ про ульту тайда..commend
@liko8019
@liko8019 3 года назад
4:17 ахахахахах
@xtrll
@xtrll 4 года назад
Музыка в конце?
@borisbritva2022
@borisbritva2022 4 года назад
сажива
@quasar4061
@quasar4061 4 года назад
1:50 какая музыка на фоне?
@ВикторНикипелов-н9ф
🔥🔥🔥
@Ap6ye
@Ap6ye 4 года назад
Самым простым языком пояснил. Мое почтение
@regalnone7338
@regalnone7338 5 лет назад
Лукос
@grafgeleon2420
@grafgeleon2420 7 лет назад
Шо лукас ставить, ну ладно поставлю)
@Dima230397
@Dima230397 7 лет назад
лойс неглядя, дождался таки
@ВадимПроценко-б4ф
а мне нравится)
@0versun0
@0versun0 6 лет назад
А про питон чёт будет?
@ИгорьКабаков-з4м
выключил видос на 2:18
@Лазизбек
@Лазизбек 7 лет назад
Разница в Action и Delegate тоже расскажите?
@МаксШевченко-я8б
Delegate - это делегат. Он может принимать и возвращать любые значения. Action - это определённый делегат, который только принимает значения, но ничего не возвращает взамен.
@kbrmbzao
@kbrmbzao 6 лет назад
Впервые замедлил видео на ютьюбе.
@transkriptsiya1
@transkriptsiya1 6 лет назад
Вот лет через 15-20 просмотри свое видео и поплачь. Реального понимания делегатов у тебя нету. Да ты красиво излагаешь то что написано в книжке, хорошо все запомнил, хоть зачет сдавай и без сомнение получиш зачет. но Что я имею ввиду? ну вот например, для чего нужен молоток? Молоток - металлический или деревянный брусок, насаженный под прямым углом на рукоятку, данный ударный инструмент служит для забивания чего-н., ударом по чему-н. или Молотком забивают гвозди.Два варианта объяснения верны, только первый книжный, как у тебя, много ненужных книжных терминов, нету реального опыта.
@anicome5425
@anicome5425 6 лет назад
А начинающему как не книжные термины потом курить? Видео под аудиторию?
@MrOlezhandr
@MrOlezhandr 5 лет назад
Когда Вы запилите курс по C#?
@MrOlezhandr
@MrOlezhandr 5 лет назад
Когда Вы запилите курс по C#?
@nazaryanandranik1625
@nazaryanandranik1625 7 лет назад
классно обяснил, молодец -> Like и подписка!
Далее
Полиморфизм на практике
10:42
Просмотров 179 тыс.
C# Delegates Делегаты
18:14
Просмотров 87 тыс.
DAXSHAT!!! Avaz Oxun sahnada yeg'lab yubordi
10:46
Просмотров 442 тыс.
Airpod Through Glass Trick! 😱 #shorts
00:19
Просмотров 196 тыс.
C# Events События
14:36
Просмотров 52 тыс.
THE MOST FREQUENT MISCONCEPTIONS ABOUT OOP
19:37
Просмотров 552 тыс.