Nyckelskillnad - kassera () vs slutföra ()
Huvudskillnaden mellan disponera () och finalisera () är att disponera () måste åberopas uttryckligen av programmeraren medan finaliseringen () åberopas av sopuppsamlaren innan objektet förstörs.
Dispose () är en metod för att stänga eller släppa ohanterade resurser som filer, strömmar som hålls av ett objekt. Slutförandet är en metod för att utföra rensningsoperationer på icke-hanterade resurser som innehas av det aktuella objektet innan objektet förstörs.
INNEHÅLL
1. Översikt och nyckeldifferens
2. Vad är disponera ()
3. Vad är finalisera ()
4. Likheter mellan kassera () och finalisera ()
5. Jämförelse sida vid sida - kassera () vs finalisera () i tabellform
6. Sammanfattning
Vad är kassera ()?
En av de viktigaste fördelarna med. NET framework är att det ger automatisk skräpsamling. Det släpper automatiskt minnet på objekten som inte används. I programmeringsspråk som C och C ++ måste programmeraren hantera minneshantering på egen hand. Men på språk som C # som är byggt på. NET framework tillhandahåller sopuppsamlaren. Det hjälper till att hantera minnet. Det kan inte användas för att frigöra ohanterade minnesresurser. Metoden disponera () kan användas för att uppnå denna uppgift.
Metoden disponera () kan användas för att frigöra resurser som databasanslutningar, filhanterare etc. Denna metod anropas inte automatiskt. Därför bör programmeraren implementera denna metod. Så snart den här metoden åberopas släpps minnet för den specifika ohanterade resursen. Denna metod förklaras i gränssnittet IDisposeable.
Vad är finalisera ()?
Den slutgiltiga metoden anropas bara av sopuppsamlaren när referensen till ett objekt inte används längre. Denna metod kallas precis innan objektet förstörs. Denna metod implementeras med hjälp av destruktorn. Slutför metoden definieras i klassen java.lang.object. Denna metod förklaras skyddad. Det förklaras inte som offentligt för att undvika åtkomst från andra klasser. Sammantaget kan finaliseringsmetoden minimera programmets prestanda eftersom det inte frigör minnet direkt.
Vad är likheten mellan disponera () och slutföra ()?
Både disponera () och finalisera () kan användas för att frigöra minnet som tilldelats för en icke-hanterad resurs
Vad är skillnaden mellan disponera () och finalisera ()?
Skilja artikeln mitt före bordet
kassera () vs slutföra () |
|
Dispose () är en metod för att stänga eller släppa ohanterade resurser som filer, strömmar som hålls av ett objekt. | Slutförandet är en metod för att utföra rensningsoperationer på icke-hanterade resurser som innehas av det aktuella objektet innan objektet förstörs. |
Mål | |
Dispos-metoden används för att frigöra de ohanterade resurserna när den åberopas. | Finaliseringsmetoden används för att frigöra de ohanterade resurserna innan objektet förstörs. |
Definierat gränssnitt eller klass | |
Dispose () definieras i gränssnittet IDisposable interface. | Finalize () definieras i klassen java.lang.object. |
Åberopande metod | |
Dispos-metoden åberopas av programmeraren. | Slutföringsmetoden åberopas av sopuppsamlaren. |
Access Specifier | |
Avyttringsmetoden är offentlig. | Finaliseringsmetoden är skyddad. |
Hastighet | |
Avyttringsmetoden åberopas omedelbart. | Färdigställningsmetoden åberopas långsamt. |
Prestanda | |
Kassan minimerar inte programmets prestanda. | Finaliseringsmetoden kan minimera programmets prestanda. |
Sammanfattning - kassera () vs slutföra ()
Denna artikel diskuterade skillnaden mellan kassera och slutföra metoder i C #. Skillnaden mellan disponera () och finalisera () är att disponera () måste åberopas uttryckligen av programmeraren medan finaliseringen () åberopas av sopuppsamlaren innan objektet förstörs.