The kluczowa różnica Pomiędzy dispose () i finalize () jest to dispose () musi być jawnie wywołany przez programistę, podczas gdy finalize () jest wywoływany przez moduł odśmiecający przed zniszczeniem obiektu.
Dispose () to metoda zamykania lub zwalniania niezarządzanych zasobów, takich jak pliki, strumienie przechowywane przez obiekt. Finalizacja to metoda przeprowadzania operacji czyszczenia niezarządzanych zasobów przechowywanych przez bieżący obiekt przed zniszczeniem obiektu.
1. Przegląd i kluczowa różnica
2. Co to jest dispose ()
3. Co to jest finalizacja ()
4. Podobieństwa między dispose () i finalize ()
5. Porównanie obok siebie - dispose () vs finalize () w formie tabeli
6. Podsumowanie
Jedną z najważniejszych zalet platformy .NET jest to, że zapewnia ona automatyczne usuwanie śmieci. Automatycznie zwalnia pamięć nieużywanych obiektów. W językach programowania, takich jak C i C ++, programista musi samodzielnie zarządzać pamięcią. Ale w językach, takich jak C #, który jest zbudowany na platformie .NET, zapewnia moduł wyrzucający elementy bezużyteczne. Pomaga zarządzać pamięcią. Nie można go użyć do zwolnienia niezarządzanych zasobów pamięci. Do wykonania tego zadania można użyć metody dispose ().
Metodę dispose () można wykorzystać do zwolnienia zasobów, takich jak połączenia z bazą danych, procedury obsługi plików itp. Ta metoda nie jest wywoływana automatycznie. Dlatego programista powinien wdrożyć tę metodę. Po wywołaniu tej metody pamięć dla określonego niezarządzanego zasobu zostaje zwolniona. Ta metoda jest zadeklarowana w interfejsie IDisposeable.
Metoda finalizacji jest wywoływana przez moduł czyszczenia pamięci tylko wtedy, gdy odwołanie do obiektu nie jest dalej używane. Ta metoda jest wywoływana tuż przed zniszczeniem obiektu. Ta metoda jest implementowana za pomocą destruktora. Metoda finalizacji jest zdefiniowana w klasie java.lang.object. Ta metoda jest zadeklarowana jako chroniona. Nie jest zadeklarowany jako publiczny, aby uniknąć dostępu innych klas. Podsumowując, metoda finalizacji może zminimalizować wydajność programu, ponieważ nie zwalnia ona natychmiast pamięci.
dispose () vs finalize () | |
Dispose () to metoda zamykania lub zwalniania niezarządzanych zasobów, takich jak pliki, strumienie przechowywane przez obiekt. | Finalizacja jest metodą przeprowadzania operacji czyszczenia niezarządzanych zasobów przechowywanych przez bieżący obiekt przed zniszczeniem obiektu. |
Cel | |
Metoda dispose służy do uwolnienia niezarządzanych zasobów po jej wywołaniu. | Metoda finalizacji służy do uwolnienia niezarządzanych zasobów przed zniszczeniem obiektu. |
Zdefiniowany interfejs lub klasa | |
Funkcja dispose () jest zdefiniowana w interfejsie IDisposable interface. | Finalize () jest zdefiniowany w klasie java.lang.object. |
Metoda wywoływania | |
Metoda dispose jest wywoływana przez programistę. | Metoda finalizacji jest wywoływana przez moduł czyszczenia pamięci. |
Specyfikator dostępu | |
Metoda usuwania jest publiczna. | Metoda finalizacji jest chroniona. |
Prędkość | |
Metoda usuwania jest wywoływana natychmiast. | Metoda finalizacji jest wywoływana powoli. |
Występ | |
Utylizacja nie zminimalizuje wydajności programu. | Metoda finalizacji może zminimalizować wydajność programu. |
W tym artykule omówiono różnicę między metodami usuwania i finalizacji w języku C #. Różnica między dispose () i finalize () polega na tym, że program dispose () musi być jawnie wywołany przez programistę, podczas gdy finalize () jest wywoływany przez moduł odśmiecający przed zniszczeniem obiektu.
1. Wdrażanie Finalizuj i usuwaj w celu oczyszczenia niezarządzanych zasobów. Dostępny tutaj
2. Sharma, Nitya. „Powrót do podstaw - Pozbądź się finalizacji Vs”. C # Corner. Dostępny tutaj
1.'Csharp Logo'By Andres15alvarez - Praca własna, (CC BY-SA 4.0) przez Commons Wikimedia