Объект дня — делегаты
Давайте вспомним и освежим основную инфу
⏩Делегат — это объект, который может ссылаться на метод или несколько методов. Следовательно, когда создается делегат, то в итоге получается объект, содержащий ссылку на метод. Иными словами, делегат позволяет вызывать метод, на который он ссылается.
⏩По сути, делегат — это безопасный в отношении типов объект, указывающий на другой метод (или, возможно, список методов) приложения, который может быть вызван позднее. В частности, объект делегата поддерживает 3 важных фрагмента информации:
— адрес метода, на котором он вызывается
— аргументы (если есть) этого метода
— возвращаемое значение (если есть) этого метода
⏩Пример использования делегата на изображении.
Делегат — это по сути очередь в которую можно добавить сколько угодно методов. При выполнении
train += Wagon2; мы добавляем 2й вагон в очередь. Причина, почему на экран вывелась цифра 3 после выполнения всех методов в том, что если функция имеет возвращаемое значение, то возвращается значение с последней добавленной "в очередь" функции.
@csharp_ci
