Подписка на событие в C#
Подписаться на событие значит добавить метод в цепочку обработчиков. Отписаться - убрать тот же метод из списка.
Запишем класс, подпишем обработчик и вызовем оповещение из метода класса:
void OnOpen() {
Console.WriteLine("open");
}
Door door = new Door();
door.Opened += OnOpen;
door.Open();
class Door {
public event Action? Opened;
public void Open() {
Opened?.Invoke();
}
}
Отпишем обработчик и снова вызовем оповещение - строка больше не появится:
void OnOpen() {
Console.WriteLine("open");
}
Door door = new Door();
door.Opened += OnOpen;
door.Opened -= OnOpen;
door.Open();
class Door {
public event Action? Opened;
public void Open() {
Opened?.Invoke();
}
}
Сделайте класс Switch с полем оповещения
Flip и методом, который его вызывает.
Подпишите обработчик, отпишите его и убедитесь,
что после отписки вывод не повторяется.