Spisu treści:
Definicja - Co oznacza Destructor?
Destruktor to specjalna metoda wywoływana automatycznie podczas niszczenia obiektu. Działania wykonywane w destruktorze obejmują:
- Odzyskiwanie przestrzeni sterty przydzielonej w czasie życia obiektu
- Zamykanie połączeń do pliku lub bazy danych
- Zwalnianie zasobów sieciowych
- Zwalnianie blokad zasobów
- Inne zadania porządkowe
Techopedia wyjaśnia Destructor
Destruktory są wywoływane jawnie w C ++. Jednak w języku C # i Javie tak nie jest, ponieważ przydzielanie i zwalnianie pamięci przydzielonej do obiektów jest domyślnie obsługiwane przez moduł czyszczenia pamięci. Podczas gdy destruktory w C # i Javie (zwane finalizatorami) są niedeterministyczne, gwarantuje się, że wywoływacze C # zostaną wywołane przez środowisko uruchomieniowe .NET. Jednak finalizatory Java muszą być jawnie wywoływane, ponieważ ich wywołanie nie jest gwarantowane.
Kluczowe właściwości destruktorów można podsumować następująco:
- Automatyczne wywołanie i brak wyraźnego połączenia z kodu użytkownika
- Przeładowanie lub dziedziczenie jest niedozwolone
- Dostęp do modyfikatorów lub parametrów, które nie zostaną określone
- Kolejność wywoływania destruktora w klasie pochodnej jest od najbardziej pochodnej do najmniej pochodnej
- Wywoływany nie tylko podczas niszczenia obiektu, ale także wtedy, gdy instancja obiektu nie kwalifikuje się już do dostępu
- Używany w klasach, ale nie w strukturach
- Służy wyłącznie do zwalniania drogich niezarządzanych zasobów (takich jak okna, połączenie sieciowe itp.) Przechowywanych przez obiekt, a nie do zwalniania zarządzanych referencji