Что такое делегат? 🔥 🙂 Всем привет! Сегодня мы рассмотрим тему, с… — Джун Джуно к вашим услугам! Путь в разработку игр | Движуха Сакутина — TG.ME

🔥 Что такое делегат? 🔥


🙂 Всем привет! Сегодня мы рассмотрим тему, с которой работал каждый, но не каждый смог понять. В очень редких случаях приходится работать с чистыми делегатами, но для собеседования стоит иметь понимание как это работает

🗣️ Делегат — это тип, который представляет собой ссылку на метод с определенным списком параметров и типом возвращаемого значения🗣️

🕯 При создании экземпляра делегата этот экземпляр можно связать с любым методом с совместимой сигнатурой и типом возвращаемого значения

📌 По сути, наша система событий работает на основе делегатов. При подписке на событие мы передаем ссылку на наш метода, а при вызове события вызывается и наш метод

‼️ Пример: [модификатор доступа] delegate [возвращаемый тип] PerformCalculation([аргументы]);

✔️ Если создавая класс - мы создаем новый тип объекта. То создавая делегат - мы создаем новый тип функции. На изображении можно увидеть, что мы создаем экземпляр делегата в параметр new() передаем ссылку на метод. Если мы хоти добавить больше методов, то добавляем через +=. Соответственно если мы хотим убрать ссылку на метод мы используем -=


💥 Заключение
Стоит понимать, что создавая делегат мы создаем новый тип функции. При создании экземпляра - мы добавляем в него любые методы которые подходят по сигнатуре. Сколько методов добавим - столько и активируется при вызове делегата. А если остались вопросы - Джун Джуно к вашим услугам!
❤3🔥2🦄1
September 15, 2024 587 4