Что такое 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();
}
}
Комментарии (1)