Що таке event в C#?
Події дозволяють об'єктам надсилати повідомлення про події, а іншим об'єктам підписуватися на ці події та реагувати на них.
Основні моменти:
- Видавець та передплатник: Об'єкт, що генерує подію, називається видавцем (publisher), а об'єкт, що обробляє подію, називається передплатником (subscriber).
- Створення події: Подія оголошується з використанням ключового слова
eventу видавничому класі. Подія може бути асоційована з делегатом, який визначає сигнатуру методу, що викликається у разі події. - Підписка на подію: Передплатник реєструє свій метод для обробки події за допомогою оператора
+=. Метод передплатника буде викликаний, коли подія відбудеться. - Генерація події: Видавець викликає подію, повідомляючи всіх передплатників про її виникнення.
// Клас, що містить подію
public class EventPublisher
{
// Подія з делегатом Action
public event Action MyEvent;
//Метод для генерації події
public void RaiseEvent()
{
Console.WriteLine("Event occurred!");
// Виклик події
MyEvent?.Invoke();
}
}
// Клас, що містить метод обробки події
public class EventSubscriber
{
// Метод, який буде викликаний у разі події
public void HandleEvent()
{
Console.WriteLine("Event handled by EventSubscriber");
}
}
class Program
{
static void Main()
{
// Створення об'єктів видавця та передплатника
EventPublisher publisher = new EventPublisher();
EventSubscriber subscriber = new EventSubscriber();
// Підписка на подію
publisher.MyEvent += subscriber.HandleEvent;
// Генерація події
publisher.RaiseEvent();
}
}
Коментарі