Nøkkelforskjell - kast () vs fullfør ()
Hovedforskjellen mellom disponere () og finalize () er at disponere () må påberopes eksplisitt av programmereren mens finaliseringen () påberopes av søppeloppsamleren før den ødelegger objektet.
Dispose () er en metode for å lukke eller frigjøre ikke-administrerte ressurser som filer, strømmer som holdes av et objekt. Finaliseringen er en metode for å utføre oppryddingsoperasjoner på ikke-administrerte ressurser som det nåværende objektet har før objektet blir ødelagt.
INNHOLD
1. Oversikt og nøkkelforskjell
2. Hva er disponere ()
3. Hva er ferdig ()
4. Likheter mellom disponere () og fullføre ()
5. Sammenligning side om side - disponere () vs fullføre () i tabellform
6. Sammendrag
Hva er disponere ()?
En av de viktigste fordelene med. NET framework er at det gir automatisk søppeloppsamling. Den frigjør automatisk minnet til objektene som ikke brukes. I programmeringsspråk som C og C ++, må programmereren håndtere minnestyring alene. Men på språk som C # som er bygget på. NET framework gir søppeloppsamleren. Det hjelper å administrere minnet. Den kan ikke brukes til å frigjøre de ikke-administrerte minnesressursene. Dispose () -metoden kan brukes til å oppnå denne oppgaven.
Dispose () -metoden kan brukes til å frigjøre ressurser som databaseforbindelser, filhåndterere osv. Denne metoden kalles ikke automatisk. Derfor bør programmereren implementere denne metoden. Så snart denne metoden påkalles, frigjøres minnet for den spesielle ikke-administrerte ressursen. Denne metoden er erklært i grensesnittet IDisposeable.
Hva er finalize ()?
Fullføringsmetoden kalles bare av søppeloppsamleren når referansen til et objekt ikke brukes videre. Denne metoden kalles like før du ødelegger objektet. Denne metoden er implementert ved hjelp av destruktoren. Fullføringsmetoden er definert i klassen java.lang.object. Denne metoden er erklært beskyttet. Det er ikke erklært som offentlig for å unngå tilgang fra de andre klassene. Totalt sett kan finaliseringsmetoden minimere ytelsen til programmet fordi det ikke frigjør minnet umiddelbart.
Hva er likheten mellom disponere () og fullføre ()?
Både disponere () og finalisere () kan brukes til å frigjøre minnet som er tildelt for en ikke-administrert ressurs
Hva er forskjellen mellom disponere () og fullføre ()?
Diff Article Midt før tabell
disponere () vs fullføre () |
|
Dispose () er en metode for å lukke eller frigjøre ikke-administrerte ressurser som filer, strømmer som holdes av et objekt. | Finaliseringen er en metode for å utføre opprydningsoperasjoner på ikke-administrerte ressurser som det nåværende objektet har før objektet blir ødelagt. |
Objektiv | |
Avhendingsmetoden brukes til å frigjøre de ikke-administrerte ressursene når den påberopes. | Finaliseringsmetoden brukes til å frigjøre de ikke-administrerte ressursene før objektet blir ødelagt. |
Definert grensesnitt eller klasse | |
Dispose () er definert i grensesnittet IDisposable interface. | Finaliseringen () er definert i klassen java.lang.object. |
Påkaller metode | |
Avhendingsmetoden påkalles av programmereren. | Den avsluttende metoden påkalles av søppeloppsamleren. |
Tilgangsspesifikator | |
Avhendingsmetoden er offentlig. | Fullføringsmetoden er beskyttet. |
Hastighet | |
Avhendingsmetoden påberopes umiddelbart. | Fullføringsmetoden påkalles sakte. |
Opptreden | |
Avhending vil ikke minimere ytelsen til programmet. | Fullføringsmetoden kan minimere ytelsen til programmet. |
Sammendrag - avhend () mot ferdigstillelse ()
Denne artikkelen diskuterte forskjellen mellom avhende og fullføre metoder i C #. Forskjellen mellom disponere () og fullføre () er at disponere () må påberopes eksplisitt av programmereren mens finaliseringen () påberopes av søppeloppsamleren før objektet ødelegges.