Zastanawiałem się, czy ktoś mógłby mi powiedzieć surowego kodu równoważnego operatorowi + = dla dodania metody do zdarzenia. Ciekawi mnie, jak to działa z technicznego punktu widzenia.Kod równoważny + = przypisanie do zdarzenia
5
A
Odpowiedz
10
An event
definiuje zestaw metod, w tym "dodaj" i "usuń" (w ten sam sposób, w jaki właściwość definiuje "get" i "ustaw"). w tym celu:
obj.add_SomeEvent(handler);
Wewnętrznie, wydarzenie może zrobić wszystko; tam są 2 wspólne przypadki:
- wydarzenia z pola delegata (w tym "Pole-like" wydarzeń)
EventHandlerList
realizacje
z delegatem, skutecznie wykorzystuje Delegate.Combine
:
handler = Delegate.Combine(handler, value);
W przypadku obiektu EventHandlerList
znajduje się obiekt klucza:
Events.AddHandler(EventKey, value);