в таком же ключе нужно про события. что значат хэндлер, аргс, сендер, е и т.д. З.Ы. постараюсь все видео коментить что бы поднять вас в рекомендациях, т.к. вы правы - формат объяснения очень хорош.
Автор ты огромный молодец, как же мне было приятно смотреть это видео, все так понятно, хорошая громкость голоса, музыка на фоне, все так лампово, в общем очень круто спасибо!
Блин, то что я искал, очень здорово. Просьба к автору, не забрасывай канал, все видео познавательные и на русском! Серьезно, брал курс на Udemy, чтобы разобраться в делегатах, так там 2 часа разжовывали незнамо что, а тут все быстро, понятно, по делу и бесплатно!
Это классно! Я очень рад, что информация в ролике помогла осмыслить делегаты лучше. Не забудьте посмотреть ролик про события (events) для полноты картины :) Спасибо за комментарий! Впереди много интересного.
Какая же годнота! Для особей со ступором мозговины, вроде меня, это просто какое-то спасение. Всё разжевано и визуализировано. Спасибо, чел, это топ контент.
Видео отличное, очень правильно и качественно сделано. Разве что могу добавить - если новичку сложно освоить делегаты и события шарпа, а также передачу аргументов по ссылке (ref, out) - изучите указатели в Си. когда умеешь работать с указателями, понимаешь что такое эти все делегаты, что такое передача по ссылке и откуда у этого ноги растут.
Слушать Ваши уроки - одно удовольствие. И даже когда знаешь материал,- все равно находишь для себя что-то новое. Спасибо за Ваш профессионализм и хорошую подачу материала.
Прекрасная подача материала. Мне очень нравится такое. Заранее подготовленный сценарий, без всяких там: "а чё я хотел сказать? эээ.... ммм... ну да! а... нет". Тщательно составленная графика, ничего лишнего. Единственное, я бы фоновую музыку сделал чуть потише. И в конце рост громкости слишком уж взрывной, помягче бы. Но это на будущее, конечно же. Лайк, безусловно!
Крутой ролик, весьма понятно, документация больше запутывала, конечно и в ней можно взять информацию, но там больше академически и строго в терминологии, да еще и английские термины незнакомые переводишь и зачастую получаешь не совсем тот смысл в предложениях, благодарю вас, вы делаете отличную работу 👍
Шикарно, просто шикарно! Наконец то, спустя дня поисков и просмотров скучных роликов, я нашел действительно подробный и приятный урок. Спасибо вам! Желаю вашему каналу миллионы подписчиков!
Одно из самых лучших объяснений, которые я когда либо видел в своей жизни, спасибо тебе большое за твои видосы, благодаря тебе, во многих аспектах стал лучше ориентироваться
Круто, очень круто. Все объясняется простым и понятным языком, очень доходчиво. Автору желаю успехов, побольше подписчиков и динамического развития канала. Подписка!
Классно сделано, вот бы еще рассказали, зачем нужны делегаты 😉 Смотрел кучу роликов и нигде нормально об этом не говорится. Сделайте сравнение с другими вариантами, что ли. Или пример, где видно, что по-другому не решить. А здесь - нажали на кнопку, вызвали метод по ссылке. И? Можно нажать кнопку и вызвать метод без ссылки. В чем прикол?
Прикол в универсальности делегатов. Их можно объявлять с каким угодно типом, и не привязываться к жестко закоденой функции. Взял делегат, на его основе подогнал какой-то рандомный метод и готово. Насколько я понимаю, использование делегатов делает код намного прозрачнее и проще для расширения (тут надо про принципы SOLID помнить).
@@zagites7763 проблема в том, что нет удачных примеров. Все те, что есть, позволяют достигать цели без делегатов. Нашел одно объяснение, которое устроило меня - для достижения цели вам нужно подряд вызвать несколько методов. Можно их объединить в одно действие с использованием делегата. Очень удобно для тестирования.
Вот чего чего, а многим видео по программированию не хватает жизни, движения. Именно по этому я радуюсь каждый раз, как вижу видео, в котором повествование и картинка идут паралельно, дополняя друг друга
урок интересный, спасибо, разобрался с делегатами. Вот что хотел сказать, проблема всех объяснений классов, делегатов и прочего, что не понятно для чего это нужно. вот в уроке объяснили для чего делегаты и в конце смотришь такой блин создали класс и прочее, но можно же было обойтись одной функцией и для новичка это выглядит нелепо
Большое спасибо. Действительно, тут стало понятно 😅 почти день ковыряния на метаните, но понятно стало у Вас. Я конечно, не Иван и даже не Борис, но лайк поставила
Всегда пожалуйста. Очень рад, что рубрика "тут станет понятно" отвечает своему названию 🙂 Поcмотрите еще ролик про события (events): ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-oDucgj1JDPQ.html Я думаю, по горячим следам, это будет на пользу. Темы делегатов и событий понятийно очень переплетены и их стоит сразу осознавать вместе.
@@codaza-channel единственное, магией для меня осталась работа свойства public PriceChange PriceChangeHandler { get; set; } но про их работу я не нашла у вас видео, пойду перечитывать метанит ) Но про события уже смотрю и разбираю )
Да, про свойства пока нет ролика на канале. Но если говорить о свойствах супер кратко, чтобы вы сразу же поняли суть, то свойство - это способ задать переменную класса извне (например, из метода Main). То есть, может быть свойство в котором мы задаём целочисленную переменную (например, пусть будет вес человека): public int HumanWeight { get; set; } А может быть свойство где мы задаём ссылку на метод (как в примере из ролика): public PriceChange PriceChangeHandler { get; set; } То есть, переводя на человеческий язык, через свойство PriceChangeHandler, мы из метода Main, говорим объекту класса StockExchangeMonitor следующее: У меня есть метод ShowPrice() и этот метод как раз совпадает с сигнатурой делегата PriceChange, сохрани его у себя в свойстве PriceChangeHandler, чтобы ты (StockExchangeMonitor) мог его вызвать, когда посчитаешь нужным.
Пояснение то годное, но такой вопрос: чем чужд простой вызов метода? Будь то статический или нестатический? Почему выгоднее присваивать делегату метод и так вызывать нужный? Проще же по сути без них.
Да, без них проще, но я уверяю вас, что с ростом опыта Вы осознаете, что их появление в языке - необходимость, которая упрощает разработку программного обеспечения. Например, событийная модель невозможна без делегатов (рекомендую посмотреть ролик про события на канале: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-oDucgj1JDPQ.html). Разработка библиотеки, которая не должна зависеть от кода, который её использует - трудно реализуемая задача без применения делегатов. Реализация многих абстракций требует использования делегатов, чтобы избежать "жёсткой связи" с внешним кодом. Если вы начинающий разработчик, я предлагаю вам опустить эту тему на некоторе время и двигаться дальше. Вы неминуемо будете сталкиваться с делегатами в самых разных контекстах. Через очень короткое время, пазл сложится 🙂 Вы в любое время можете писать комментарии под роликом и я постараюсь прояснить недостающие элементы в вашей картине восприятия. Но, прямо сейчас, если ваш уровень понимания не очень высок, стоит просто продолжить движение вперёд.
Странное ощущение после просмотра видео, вроде бы все изложено очень доступно, вполне себе хороший пример демонстрации работы делегатов. Но почему-то когда пытаешься сделать свою задачу, выясняется, что суть так и не ухватил. Еще хуже становится при просмотре следующего видео про события. На мой взгляд при объяснении делегатов очень важно делать особый акцент на том, почему нужно в данной ситуации использовать делегат, и что может произойти плохого при использовании обычных методов.
Вот да. Вроде смотришь. И вроде логично говорит. Но нихрена непонятно. Почему именно так? Нафига этот метод Start? Почему там, блин, ты создаёшь делегат. Очень похож на метод, по объявлению, но это тип. Потом создаёшь экземпляр этого типа. А почему в классе вообще какой-то Handler появился? Зачем он нужен и что это? В общеееем, капец непонятно ничего...
Жизненно. Просто объяснено, но без разбора мелочей и деталей, без углубления и разжевывания. Вот за это я люблю смотреть Христа, у него как-то всё по-человечески и на тупых примерах (в хорошем смысле, типа, для тупых)
@@vladoss4643 а всё потому что ты не понял изначально что такое делегат) Это ссылка на какой-то метод!!!!который можно изменить при применении на ходу
@@back_to_life0 я понял, как себе это объяснить. Для меня делегат - это аналог интерфейса, только для метода. С помощью делегата ты можешь отделить запрос на выполнение метода от реализации этого метода. Если тебе нужно выполнять одинаковые по форме(забыл слово) методы - пожалуйста. Можно в цикле в делегат засовывать все методы, а потом вызывать их. Ты также через цикл можешь проходить все классы в списке интерфейсов и вызывать что-то у каждой реализации. Корочеее... По-моему, похоже. Что думаете?
Очень вкусный контент. Жаль, что время не хватает продолжать. Паттерны, асинхронность, примеры из жизни, архитектура - как бы хотелось продолжения формата.
и действительно... всё стало понятно... первое видео от вас на которое я наткнулся. лайк, подписка и пошел смотреть остальные. хотя не, пойду потыкаю палкой делегаты, вдруг оно живое?