Udostępnij za pośrednictwem


Zastąpienie metody Finalize

Metoda Finalize działa, jako zabezpieczenie przed oczyszczeniem zasobów w przypadku, gdy metoda Dispose nie zostanie wywołana. Metodę Finalize należy zaimplementować tylko do oczyszczania niezarządzanych zasobów. Nie należy implementować metody Finalize dla zarządzanych obiektów, ponieważ moduł odśmiecania pamięci, czyści zarządzane zasoby automatycznie. Domyślnie metoda Object.Finalize nie robi nic. Jeśli chcesz, aby moduł odśmiecania pamięci wykonał operację oczyszczania na obiekcie przed przejęciem pamięci zajmowanej przez obiekt, musisz zastąpić tą metodę w swojej klasie.

Uwaga

Nie można zastąpić metody Finalize w językach programowania C# lub C++.Należy użyć składni destruktora, aby zaimplementować metodę Finalize w C#.W wersji 2.0 .NET Framework, język C++ zapewnia własną składnię, w celu implementacji metody Finalize, zgodnie z opisem w Jak: tworzenia wystąpienia klasy i strukturach.We wcześniejszych wersjach, C++ używa składni destruktora dla metody Finalize takiej jak C#.

Zakres metody Object.Finalize jest chroniony. Należy zachować ten ograniczony zakres podczas zastąpienia metody w klasie. Poprzez utrzymywanie metody Finalize jako chronionej, można uniemożliwić użytkownikom aplikacji wywołanie obiektu metody Finalize bezpośrednio.

Obiekt metody Finalize powinien zwolnić wszystkie zasoby, które są w posiadaniu obiektu. Powinien także wywołać metodę Finalize dla obiektu klasy podstawowej. Obiekt metody Finalize nie powinien wywoływać metody obiektów innych niż obiektów klasy podstawowej. Jest tak, ponieważ inne wywołania obiektów mogą być kolekcjonowane w tym samym czasie, co obiekt wywołujący, tak jak w przypadku zamknięcia środowiska uruchomieniowego języka wspólnego.

Jeśli zezwolisz dowolnemu wyjątkowi uniknąć metody Finalize, system założy, że metoda zwraca i kontynuuje wywołanie metody Finalize innych obiektów.

Zobacz też

Informacje

Finalize

Koncepcje

Implementacja metody Dispose

Składnia destruktora w C# i C++

Inne zasoby

Obsługa i zgłaszanie wyjątków

Podstawowe założenia obsługi wyjątków