Jämförelsediagram
Grunder för jämförelse | kassera () | slutföra () |
---|---|---|
Definierad | Metoden Dispose () definieras i gränssnittet IDisposable gränssnitt. | Metoden slutför () id definierad i klassen java.lang.object. |
Syntax | public void Dispose () { // Kassera koden här } | skyddad tomgång slutföra () { // slutkod här } |
åberopas | Metoden disponerar () åberopas av användaren. | Metoden slutför () åberopas av sopsamlare. |
Ändamål | Metoden Dispose () används för att frigöra omanagda resurser när det är påkallat. | Metoden slutför () används för att frigöra omanagda resurser innan objektet förstörs. |
Genomförande | Metoden Dispose () ska genomföras när det finns en nära () -metod. | Metoden slutför () ska genomföras för omanagda resurser. |
Access specifier | Metoden Dispose () är deklarerad som offentlig. | Metoden slutför () förklaras som privat. |
Verkan | Metoden avyttra () är snabbare och förfogar omedelbart ett objekt. | Metoden avslutar är långsammare jämfört med att bortskaffas |
Prestanda | Metoden disponerar () utför den momentana åtgärden därmed påverkar inte prestandan av webbplatser. | Metoden slutför () blir långsammare påverkar webbplatsernas prestanda. |
Definition av bortskaffa ()
Metoden Dispose () släpper ut de omanagda resurserna som innehas av ett objekt av klassen. De omanagda resurserna är filer, dataanslutningar, etc. Metoden som kasseras () förklaras i gränssnittet ID-lösbar och den implementeras av klassen genom att implementera gränssnittet IDisposable. Denna metod kallas inte automatiskt. Programmeraren måste genomföra den manuellt när du skapar en anpassad klass som kommer att användas av andra. Metoden har följande syntax:
offentligt ogiltigt kassera () {// Kassera kod här}
I ovanstående syntax kan du observera att metoden är deklarerad som allmän. Det beror på att denna metod definieras i gränssnittet IDisposable och den måste implementeras av den klass som implementerar detta gränssnitt. Så för att ge tillgänglighet till implementeringsklassen förklaras metoden som allmän.
Denna metod aktiveras manuellt av koden för ett program som det implementeras för att åberopa. Metoden prestanda är snabb, och det frigör genast de resurser som innehas av objektet för en klass.
Definition av slutföra ()
Metoden finalize () definieras i objektklassen . Den används för rengöringsaktiviteter. Denna metod kallas av sopsamlare när referens för ett objekt inte används under en längre tid. Sopsamlare frigör de hanterade resurserna automatiskt, men om du vill frigöra de omanagda resurserna som filhandtag, dataanslutning etc. måste slutförandet sättet implementeras manuellt. Sopsamlaren påstår att metoden slutför () precis innan den förstör objektet helt.
Metodens syntax slutför ():
skyddad tomgång slutför () {// slutkod här}
I syntaxen ovan avslutas metoden () deklareras som skyddad. Anledningen till detta är att metoden slutför () inte vara tillgänglig från utsidan av klassen, och den får endast vara tillgänglig för sopsamlare.
Metoden finalize () påverkar kostnaden för prestandan eftersom den inte frigör minnet direkt. I C # kallas den slutliga metoden automatiskt med destruktorer.
Viktiga skillnader mellan bortskaffa () och slutföra ()
- Metoden Dispose () definieras i ett gränssnitt IDisposable . Å andra sidan definierar metoden () definieras i klassobjektet .
- Metoden kassera () måste manuellt åberopas inuti koden av en programmerare, medan metoden slutföres automatiskt påkallas av sopsamlare innan det förstör objektet.
- Metoden som kan kasseras kan när som helst åberopas, medan förfarandet avslutas påkallas av sopsamlare när det konstateras att objektet inte har refererats länge.
- Metoden Dispose () implementeras i en klass efter implementering av gränssnittet IDisposable. Metoden slutför () måste endast genomföras för omanagda resurser eftersom de hanterade resurserna automatiskt frigörs av sopor.
- Åtkomstspecifikationen för metoden Dispose () är offentlig som den definieras i gränssnittet IDisposable och den skulle implementeras av den klass som implementerar detta gränssnitt, därför borde det vara offentligt. Å andra sidan har metoden slutförts () skyddad åtkomstspecifik, så att den inte ska vara tillgänglig för någon medlem utanför klassen.
- Metoden Dispose () är snabb och frigör objektet direkt, vilket påverkar inte prestationskostnaden. Metoden slutför () är långsammare och frigör inte genast de resurser som objektet behåller.
Slutsats:
Det föreslås att man använder metodmetod () över metoden slutför () eftersom det är snabbare än att slutföra. Det kan också kallas när som helst, när det behövs.