Важные темы C#

События (events) в C#

В этом уроке вы объявите событие, подпишете на него обработчик и вызовете событие при изменении.

Введение

Событие (event) позволяет объекту оповещать другие объекты, когда что-то происходит, по модели издатель и подписчик (publisher/subscriber). Это привычный механизм в программировании интерфейсов, например когда пользователь нажимает кнопку.

Класс Counter объявляет событие ThresholdReached. В Main оператор += подписывает лямбду на обработку события. При вызове ReachThreshold() оператор ?. вызывает событие, только если есть хотя бы один подписчик. Снаружи можно лишь подписаться или отписаться: вызвать событие может только класс Counter.

Пример на C#, который можно запустить

C#
Запустить код →
Program.cs
using System;

class Counter
{
    public event EventHandler? ThresholdReached;
    public void ReachThreshold() => ThresholdReached?.Invoke(this, EventArgs.Empty);
}

class Program
{
    static void Main()
    {
        var counter = new Counter();
        counter.ThresholdReached += (_, _) => Console.WriteLine("Threshold reached");
        counter.ReachThreshold();
    }
}
Результат выполнения
Threshold reached

Практика с отладчиком

Поставьте точку останова на важное присваивание или условие, нажмите Debug и посмотрите локальные значения, прежде чем перейти к следующей строке.

Попрактикуйтесь на задаче

Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.

Все задачи