kľúčový rozdiel medzi dispozíciou () a finalizáciou () je to dispose () musí programátor výslovne vyvolať, zatiaľ čo funkcia finalize () vyvolá zberateľ odpadu pred zničením objektu..
Dispose () je metóda na zatvorenie alebo uvoľnenie nespravovaných prostriedkov, ako sú súbory, toky v držbe objektu. Finalizácia je metóda na vykonanie čistiacich operácií na nespravovaných zdrojoch, ktoré má aktuálny objekt pred zničením.
1. Prehľad a kľúčový rozdiel
2. Čo je k dispozícii ()
3. Čo je finalizácia ()
4. Podobnosti medzi dispozíciou () a finalizáciou ()
5. Porovnanie bok po boku - zlikvidujte () vs finalizujte () v tabuľkovej forme
6. Zhrnutie
Jednou z najdôležitejších výhod .NET Framework je, že poskytuje automatický zber odpadu. Automaticky uvoľní pamäť objektov, ktoré sa nepoužívajú. V programovacích jazykoch ako C a C ++ musí programátor zvládnuť správu pamäte sám. Ale v jazykoch ako C #, ktorý je postavený na rozhraní .NET framework, poskytuje zariadenie na zber odpadu. Pomáha spravovať pamäť. Nemôže sa použiť na uvoľnenie nespravovaných zdrojov pamäte. Na splnenie tejto úlohy možno použiť metódu dispose ().
Metódu dispose () je možné použiť na uvoľnenie prostriedkov, ako sú databázové pripojenia, obsluhy súborov atď. Táto metóda sa nevyvoláva automaticky. Preto by mal programátor túto metódu implementovať. Akonáhle je táto metóda vyvolaná, uvoľní sa pamäť pre konkrétny nespravovaný prostriedok. Táto metóda je deklarovaná v rozhraní IDisposeable.
Konečnú metódu nazýva zberateľ odpadu len vtedy, keď sa odkaz na objekt už ďalej nepoužíva. Táto metóda sa volá tesne pred zničením objektu. Táto metóda je implementovaná pomocou deštruktora. Metóda finalizácie je definovaná v triede java.lang.object. Táto metóda je vyhlásená za chránenú. Nie je vyhlásené za verejné, aby sa zabránilo prístupu ostatných tried. Celkovo môže finalizačná metóda minimalizovať výkon programu, pretože neuvoľňuje pamäť okamžite.
dispose () vs finalize () | |
Dispose () je metóda na zatvorenie alebo uvoľnenie nespravovaných prostriedkov, ako sú súbory, toky v držbe objektu. | Finalizácia je metóda na vykonanie čistiacich operácií na nespravovaných zdrojoch, ktoré má aktuálny objekt pred zničením. |
objektívny | |
Metóda dispose sa používa na uvoľnenie nespravovaných prostriedkov, keď je vyvolaná. | Metóda finalize sa používa na uvoľnenie nespravovaných prostriedkov pred zničením objektu. |
Definované rozhranie alebo trieda | |
Dispose () je definovaný v rozhraní IDisposable interface. | Finalize () je definovaný v triede java.lang.object. |
Metóda vyvolávania | |
Metódu likvidácie vyvoláva programátor. | Konečnú metódu vyvoláva zberateľ odpadu. |
prístup Specifier | |
Metóda nakladania je verejná. | Metóda finalizácie je chránená. |
rýchlosť | |
Metóda likvidácie je vyvolaná okamžite. | Metóda finalizácie sa vyvoláva pomaly. |
výkon | |
Likvidácia nebude minimalizovať výkon programu. | Finalizačná metóda môže minimalizovať výkon programu. |
V tomto článku sa diskutovalo o rozdieloch medzi metódami likvidácie a dokončenia v C #. Rozdiel medzi dispose () a finalize () je v tom, že dispose () musí programátor výslovne vyvolať, zatiaľ čo funkcia finalize () vyvolá zberateľ odpadu pred zničením objektu..
1. Implementácia dokončiť a zlikvidovať nespravované zdroje. K dispozícii tu
2. Sharma, Nitya. „Back to Basics - Dispose Vs Finalize.“ C # Roh. K dispozícii tu
1.'Csharp Logo'By Andres15alvarez - Vlastné dielo, (CC BY-SA 4.0) cez Commons Wikimedia