event
определяет набор методов, включая «добавить» и «удалить» (так же, как свойство определяет «получить» и «установить»). на это эффективно:
obj.add_SomeEvent(handler);
Внутренне событие могло сделать что угодно; Есть 2 распространенных случая:
- события с полем делегата (включая «полевые» события)
EventHandlerList
реализации
С делегатом он эффективно использует Delegate.Combine
:
handler = Delegate.Combine(handler, value);
С EventHandlerList
есть ключевой объект:
Events.AddHandler(EventKey, value);