Справочники C# event

Что такое event в C#?

События позволяют объектам отправлять уведомления о произошедших событиях, а другим объектам подписываться на эти события и реагировать на них.


Основные моменты:

  1. Издатель и подписчик: Объект, генерирующий событие, называется издателем (publisher), а объект, обрабатывающий событие, называется подписчиком (subscriber).
  2. Создание события: Событие объявляется с использованием ключевого слова event в классе-издателе. Событие может быть ассоциировано с делегатом, который определяет сигнатуру метода, вызываемого при возникновении события.
  3. Подписка на событие: Подписчик регистрирует свой метод для обработки события с помощью оператора +=. Метод подписчика будет вызван, когда событие произойдет.
  4. Генерация события: Издатель вызывает событие, уведомляя всех подписчиков о его возникновении.
// Класс, содержащий событие
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)
Добавить комментарий

Yo 11 ноября 2024 в 12:47

По-моему, самое понятное объяснение, из того, что можно найти в сети. Всё чëтко и без лишней воды. Спасибо.
Ответить