Spisu treści:
Definicja - Co oznacza Finalizacja?
Finalizacja to metoda obiektowa, która zawiera kod wymagany do zwolnienia niezarządzanych zasobów i wykonania operacji czyszczenia przed odśmiecaniem (GC).
Metoda finalizacji służy do czyszczenia zasobów niezarządzanych przez .NET. Chociaż.
Techopedia wyjaśnia Finalize
Chociaż finalizacja została zaprojektowana w taki sposób, aby mogła być niejawnie wywoływana przez GC, metoda usuwania może być jawnie wywołana przez kod użytkownika w celu zwolnienia zasobów.
Finalize jest podobny do tradycyjnych destruktorów C ++, ponieważ każdy z nich jest odpowiedzialny za uwolnienie zasobów obiektu. Destruktory C ++ są wykonywane natychmiast, gdy obiekt wykracza poza zasięg, podczas gdy finalizacja jest wywoływana podczas czyszczenia obiektu w GC. W języku C # finalizacji nie można bezpośrednio wywołać ani zastąpić. Jeśli deklarowany jest destruktor, jest on konwertowany na metodę finalizacji podczas kompilacji programu.
Podczas finalizacji należy unikać przydziału pamięci lub wywoływania metod wirtualnych. Zakres finalizacji powinien być chroniony, aby można było uzyskać do niego dostęp tylko w tej samej klasie lub klasie pochodnej. Finalizuj nie powinien odnosić się do żadnych innych obiektów. W języku C # wywołanie finalizacji bezpośrednio na obiekcie innym niż jego klasa podstawowa jest niepoprawną operacją. Kod finalizacji powinien być minimalny, bez wywołań mogących zablokować wątek wywołujący. Ponieważ finalizacja jest wywoływana przez dedykowany wątek, jego kod nie powinien używać lokalnej pamięci wątków ani żadnych technik wymagających powinowactwa wątków.
Użycie finalizacji jako mechanizmu awaryjnego do uwolnienia niezarządzanej pamięci lub zasobów jest niezbędne ze względu na brak determinizmu i wpływ na wydajność GC.
