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)