Найти в Дзене
Заметки БыдлоКодера

C# delegate на пальцах

В C# существует много непонятных и тяжёлых вещей, которые новичкам или уже средним Middle программистам, тяжело понять, на адекватный вопрос - В смысле Middle не знает делегаты? - я отвечу вполне спокойно, что программисты, которые учатся на практике all time порой пропускают delegate в силу того, что они нигде и никогда им не нужны были, ибо привыкли писать код так, как научились и новые не приветствуют, а это мешает росту. Так, зачем же нам нужны delegate? Честно говоря, для меня delegate - это подписка на событие. Вот случилось событие, и мне нужно, что все кто подписаны на событие сделали свое грязное дело. А что говорят книги? Увы в открытом источнике нашел только одну книгу через Google Books. Хорошо, что говорят другие статьи? Отлично, теоретически мы имеем понятие, что такое delegate, особенно радует, когда люди упоминают С или С++ в попытках объяснить, что такое delegate, учитывая, что новое поколение программистов - вряд ли знают, как выглядит С или С++, и вообще для че
Оглавление

В C# существует много непонятных и тяжёлых вещей, которые новичкам или уже средним Middle программистам, тяжело понять, на адекватный вопрос - В смысле Middle не знает делегаты? - я отвечу вполне спокойно, что программисты, которые учатся на практике all time порой пропускают delegate в силу того, что они нигде и никогда им не нужны были, ибо привыкли писать код так, как научились и новые не приветствуют, а это мешает росту.

Yandex img
Yandex img

Так, зачем же нам нужны delegate?

  • delegate - подписка на событие;
  • delegate - ссылка на метод;

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

А что говорят книги?

C# 2005. Справочник программиста Авторы: Эдриан Кингсли-Хьюджес
C# 2005. Справочник программиста Авторы: Эдриан Кингсли-Хьюджес

Увы в открытом источнике нашел только одну книгу через Google Books. Хорошо, что говорят другие статьи?

METANIT - С# и .Net| Делегаты
METANIT - С# и .Net| Делегаты
Tproger - Введение в делегаты
Tproger - Введение в делегаты

Отлично, теоретически мы имеем понятие, что такое delegate, особенно радует, когда люди упоминают С или С++ в попытках объяснить, что такое delegate, учитывая, что новое поколение программистов - вряд ли знают, как выглядит С или С++, и вообще для чего они нужны. Да так, игры на С++ делают и все.

И так, что бы понять, что такое delegate на практике и сделать свои выводы, попробуем несколько примеров. Я постараюсь по максимуму объяснить, что я делаю, что делает КОД, а вы дай бог поймете зачем это нужно.

Задача №1 Не ори! Че ты орешь? LvL Junior

Первая задача, нацелена на практическое понимаешь delegate event, на кой лясон это нужно и где можно применять. И так в задаче у нас имеет "Крикун", который будет кричать, как только массив дойдет до цифры 35. Как только i = 35, мы должны вызвать событие OnScream, которое ссылается на метод Scream().

Как только Scream крикнул = > мы вызываем событие AskWhyScream. Которое ссылается на перезагружаемый метод Scream(). Все легко и просто? Надеюсь, что да.

3 класса ради мелких понтов
3 класса ради мелких понтов
-6

И так, у нас получается 3 класса. Первый, называется Counter, он отвечает за наш счетчик, в нем мы создадим делегат и событие, и как только цикл дойдет до i = 35 мы вызывает событие OnScream, которое ссылает на метод Класса Reaction Scream().

Второй класс, Reaction, в нем мы так же создаем делегат и событие. Метод Scream у нас отвечает за оповещение, что наступило число 35. Так же, метод вызывает событие AskWhyScream(), которое ссылает на метод Scream в классе Ask, который наследуется от Reaction.

Финиш

Данная маленькая статья посвященная delegate является максимум базовой.

И помните! Лайк + подписка, мотивируют лучше чем найденная ";"

взято с propostuplenie.ru
взято с propostuplenie.ru