Czy metoda finalize i Dispose usuwają obiekt na którym je wywołujemy czy tylko pozostałości po tych obiektach ?
obie metody:
- nie usuwaja obiektu
- moga zwalniac zasoby ale zalezy to od implementacji
roznica jest taka ze finalizer jest niedeterministycznie wywolywany przez garbage collector a dispose wywolujesz sam (explicite lub jakims lukrem skladniowym typuusing
alboforeach
)
Czyli "sprzątają" po sobie ?
czyli zalezy jak je zaimplementujesz albo jak ktos zaimplementowal. mozesz np zrobic metode dispose ktora bedzie obliczala liczbe pi z dokladnoscia do milionowego miejsca po przecinku. albo finalizer ktory bedzie wlaczal filmik na jutubie ;)
generalnie jak klasa ma metode dispose to powinienes jej uzyc jak skonczysz prace z obiektem. finalizer zostaw w spokoju
A jak to jest z html Helperami, czy oni też po wywołaniu metody tylko sprzątają obiekty czy całkowicie je usuwają. Podaje przykład, blok using czyli po wyjściu z bloku using wywoła się metoda Dispose. Czy wtedy obiekt, który był w bloku using całkowicie się usuwa ?
@using (Html.BeginForm())
{
}
Może warto przeczytać:
https://msdn.microsoft.com/pl-pl/library/garbage-collector-cz-1