Події зазвичай є публічними членами класу. Для порівняння, делегати часто передаються як параметри та зберігаються як приватні члени класу, якщо вони взагалі зберігаються.
Ключові відмінності між делегатами та подіями в C# Delegate об'єкт, який використовується як покажчик на функцію для зберігання посилання на метод. З іншого боку, події забезпечують делегатам абстракцію. Ключовим словом, необхідним для оголошення делегату, є делегат, тоді як ключовим словом, необхідним для оголошення події, є подія.
Делегат є тип, який представляє посилання на методи з певним списком параметрів і типом повернення. Коли ви створюєте екземпляр делегату, ви можете пов’язати його екземпляр з будь-яким методом із сумісним підписом і типом повернення.
Делегати дозволити розробникам вивчити одну концепцію та використовувати цю саму концепцію для багатьох різних програмних проблем. По-друге, команда хотіла підтримувати як одиночні, так і групові виклики методів. (Многоадресні делегати — це делегати, які з’єднують кілька викликів методів.
Зазвичай використовуються події сигналізувати про дії користувача, такі як натискання кнопок або вибір меню в графічних інтерфейсах користувача. Якщо подія має кілька передплатників, обробники подій викликаються синхронно, коли виникає подія. Щоб асинхронно викликати події, перегляньте розділ Асинхронний виклик синхронних методів.