Rozdiel medzi dispozíciou () a finalizáciou ()

Kľúčový rozdiel - zlikvidujte () vs uzavrieť ()
 

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.

OBSAH

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

Čo je k dispozícii ()?

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.

Čo je dokončené ()?

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.

Aká je podobnosť medzi dispozíciou () a finalizáciou ()?

  • Dispose () aj finalize () sa môžu použiť na uvoľnenie pamäte pridelenej pre nespravovaný prostriedok.

Aký je rozdiel medzi dispozíciou () a finalizáciou ()?

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.

Zhrnutie - zlikvidujte () vs uzavrieť ()

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..

referencie:

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  

S láskavým dovolením:

1.'Csharp Logo'By Andres15alvarez - Vlastné dielo, (CC BY-SA 4.0) cez Commons Wikimedia