Карточка Junior Делегаты и события обновлено

Стандартный шаблон события

Вопрос

Как принято объявлять событие в .NET?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

public event EventHandler<OrderPaidEventArgs? OrderPaid; Аргументы наследуют EventArgs.

Ответ

public event EventHandler<OrderPaidEventArgs>? OrderPaid; Аргументы наследуют EventArgs. Вызов в защищённом виртуальном методе: protected virtual void OnOrderPaid(OrderPaidEventArgs e) => OrderPaid?.Invoke(this, e);

Разбор

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

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме