Sammenligningstabel
Grunnlag for sammenligning | disponere () | fullføre () |
---|---|---|
definert | Metoden disponere () er definert i grensesnittet IDisposable grensesnitt. | Metoden avsluttes () id definert i java.lang.object klasse. |
syntax | Offentlig tomrom Avhend () { // Kast koden her } | beskyttet tomrom avsluttes () { // ferdigstillelseskode her } |
påkalt | Metoden disponere () er påkalt av brukeren. | Metoden ferdigstiller () påberopes av søppelsamleren. |
Hensikt | Metode disponere () brukes til å frigjøre ustyrte ressurser når det er påkalt. | Metoden ferdiggjør () brukes til å frigjøre ustyrte ressurser før objektet blir ødelagt. |
Gjennomføring | Metoden disponere () skal implementeres når det er en nær () metode. | Metoden ferdigstiller () skal implementeres for ustyrte ressurser. |
Tilgang spesifiserer | Metoden disponere () er erklært som offentlig. | Metoden ferdigstiller () erklært som privat. |
Handling | Metoden disponere () er raskere og disponerer umiddelbart et objekt. | Metoden ferdigstiller er langsommere i forhold til å avhende |
Opptreden | Metoden disponerer () utfører øyeblikkelig handling, derfor påvirker ikke ytelsen til nettsteder. | Metoden ferdigstiller () blir langsommere påvirker ytelsen til nettstedene. |
Definisjon av disponere ()
Metoden Dispose () frigir de ustyrte ressursene som holdes av et objekt av klassen. De ustyrte ressursene er filer, dataforbindelser, etc. Metoden disponeres () er oppgitt i grensesnittet IDisposeable, og det implementeres av klassen ved å implementere grensesnittet IDisposable. Denne metoden kalles ikke automatisk. Programmereren må implementere den manuelt når du oppretter en tilpasset klasse som vil bli brukt av andre. Metoden har følgende syntaks:
Offentlig ugyldiggjøring () {// Avhend kode her}
I ovennevnte syntaks kan du observere at metoden er erklært som offentlig. Det er fordi denne metoden er definert i grensesnittet IDisposable, og den må implementeres av klassen som implementerer dette grensesnittet. Så, for å gi tilgang til implementeringsklassen, er metoden deklarert som offentlig.
Denne metoden er påkalt manuelt av koden til et program som det er implementert for å påkalle. Fremgangsmåtenes ytelse er rask, og den frigjør øyeblikkelig ressursene som holdes av objektet til en klasse.
Definisjon av ferdigstillelse ()
Metoden Finalize () er definert i objektklassen . Den brukes til opprydding. Denne metoden kalles av søppelsamleren når referansen til en gjenstand ikke brukes i lang tid. Søppelkollektor frigjør de administrerte ressursene automatisk, men hvis du vil frigjøre de ustyrte ressursene som filhåndtak, dataforbindelse, etc., må sluttføringsmetoden implementeres manuelt. Søppelkollekten påberoper metoden ferdigbehandle () like før det ødelegger objektet helt.
Syntaksen av metoden avsluttes ():
beskyttet tomrom avsluttes () {// ferdigstillelseskode her}
I syntaksen ovenfor, avsluttes metoden () som beskyttet. Årsaken til dette er at metoden er ferdig () må ikke være tilgjengelig fra utenfor klassen, og den må bare være tilgjengelig for søppelsamleren.
Metoden Finalize () påvirker kostnadene ved ytelsen, da den ikke frigjør minnet umiddelbart. I C # kalles den endelige metoden automatisk med destruktorer.
Nøkkelforskjeller mellom disponere () og sluttføre ()
- Metoden disponere () er definert i et grensesnitt IDisposable . På den annen side er metoden ferdiggjort () definert i klassobjektet .
- Metoden disponere () må påkreves manuelt inne i koden av en programmerer, mens metoden sluttgjøres automatisk påkrevet av søppelkollektoren før den ødelegger objektet.
- Metoden disponere kan påkalles når som helst, mens metoden som ferdigstilles, påberopes av søppelkollektor når den finner at objektet ikke har blitt referert i lang tid.
- Metoden disponere () er implementert i en klasse etter implementering av grensesnittet IDisposable. Metoden ferdigstiller () må bare implementeres for ustyrte ressurser fordi de administrerte ressursene automatisk frigjøres av søppelsamleren.
- Tilgangsspesifikatoren for metoden disponere () er offentlig som den er definert i grensesnittet IDisposable, og den ville bli implementert av klassen som implementerer dette grensesnittet, derfor bør den være offentlig. På den annen side fullfører metoden () beskyttet tilgangsspesifikator slik at den ikke skal være tilgjengelig for ethvert medlem utenfor klassen.
- Metoden disponere () er rask og frigjør objektet umiddelbart, og det påvirker ikke ytelseskostnaden. Metoden ferdigstiller () er tregere og frigjør ikke ressursene som objektet holdes umiddelbart.
Konklusjon:
Det foreslås å bruke metode disponere () over metoden ferdigbehandle () som det er raskere enn å fullføre. Det kan også kalles når som helst, når det er nødvendig.