Ciekawe wydarzenie „Usuń” zachowanie

Zauważyłem interesujące zachowanie w naszej aplikacji .NET WinForms. Mamy formularz mdi, do którego dodano wiele dzieci mdi. Te dziecięce formy słuchają wydarzenia „transmisyjnego”, które jest w istocie wezwaniem do odświeżenia się. Zdarzenie jest deklarowane w klasie bazowej, a zdarzenia nasłuchujące dodawane w formularzach potomnych.

Zauważyłem, że nawet gdy te formy potomne są zamknięte, zdarzenia są nadal trafiane, jeśli zdarzenie nie jest jawnie usunięte w metodzie Dispose ().

Jakie jest tego uzasadnienie? Z pewnością, jeśli formularz zostanie zamknięty, wydarzenia powinny zostać odłączone / usunięte? Czy to dlatego, że samo wydarzenie jest deklarowane w klasie zewnętrznej? To jest to, co zakładam.

Wgląd byłby bardzo ceniony.

(używając C #, .NET 3.5)

questionAnswers(4)

yourAnswerToTheQuestion