-
На відміну від делегата, подія надає абстракцію для реалізації патерну Observer (спостерігач).
-
На відміну від делегата, подія визначається за допомогою ключового слова event.
-
На відміну від делегата, подія надає механізм безпеки, який дозволяє контролювати доступ до списку підписаних методів, а отже, подія не дозволяє безпосередньо викликати підписані методи ззовні класу, забезпечуючи кращу інкапсуляцію та більшу надійність. Подія зазвичай використовується для сповіщення про внутрішні зміни класу, зберігаючи при цьому прихованість реалізації.
ще раз: Подію не можна запустити поза класом, в якому вона була оголошена (це найважливіша відмінність!!!!!!!!!!!)
-
На відміну від делегата, подія не потребує явного створення та управління делегатами вручну.
-
На відміну від делегата, подія є вищим рівнем абстракції, що надає чистий та зручний інтерфейс для реагування на події у додатку.
-
Загалом подія – це інкапсульований делегат, який наділяється деякими додатковими властивостями через слово event
-
І подію, і делегат можна оголосити полем класу, але на відміну від делегата, подія не може бути локальною змінною методу