Witam,
mam takie pytanie a w zasadzie dwa pytania
- co wlasciwie robi funkcja dispose(). Bo wszedzie gdzie czytam napisane jest ze sluzy ona do usuwania obiektow. Ale kiedy ja sobie zobie na przyklad tak
jakisTamObiekt.Dispose() //oczywiscie klasa korzysta z interfejsu IDisposable
to pozniej dalej moge sie do niego odwolywac. Czy w metodzie Dispose musze umiescic jakis kod kotry powoduje ze obiekt zostanie faktycznie usuniety? Bo przeciez do destruktora sie nie moge odwolac?
- Drugie pytanie to w zasadzei przyklad
Otoz mam 2 klasy z ktorych tworze po jednym obiekcie - niech to beda obiekty
a) Obserwator
b) Obserwowany
Obiekt Obserwowany ma zdefiniowane zdarzenie np OnZdarzenie, a obiekt Obserwator dodaje do tego zdarzenia jakas swoja funkcje np. Modyfikuj. Czyli calosc dziala tak ze Gdy w obiekcie Obserwowany wystapi zdarzenia OnZdarzenie to w obiekcie Obserwator zostanie wywolana metoda Modyfikuj.
Teraz pytanie - czy GarbageCollector moze usunac "samowolnie" obiekt Obserwator jesli jedynym jego przejawem istnienia bedzie tylko to, ze jest powiazany z zdarzeniem OnZdarzenie - pewnie nie moze - czy mam racje?
A jesli tak, to jak nalezy usunac taki obiekt (zalozmy ze chce go usunac). Tak jak pisze w pytaniu 1 - metoda dispose() z moich obserwacji nie usuwa obiektu i nadal moge sie do niego odwolywac - ale moze sie myle:-) (pewnie tak)
Pewnie te pytania sa banalne, za co z gory przepraszam, ale ucze sie C# od 1,5 miesiaca i jest to w zasadzie moj 1 jezyk, wiec nie wszystko jeszcze jest dla mnie jasne.
Z gory dzieki za odpowiedz