De belangrijk verschil tussen dispose () en finalize () is dat dispose () moet expliciet worden aangeroepen door de programmeur, terwijl finalize () wordt aangeroepen door de garbagecollector voordat het object wordt vernietigd.
De dispose () is een methode om niet-beheerde bronnen, zoals bestanden, streams die door een object worden gehouden, te sluiten of vrij te geven. Het finaliseren is een methode om opruimacties uit te voeren op niet-beheerde bronnen die door het huidige object worden vastgehouden voordat het object wordt vernietigd.
1. Overzicht en belangrijkste verschil
2. Wat is dispose ()
3. Wat is finalize ()
4. Overeenkomsten tussen dispose () en finalize ()
5. Vergelijking zij aan zij - dispose () vs finalize () in tabelvorm
6. Samenvatting
Een van de belangrijkste voordelen van .NET Framework is dat het automatische garbagecollection biedt. Het geeft automatisch het geheugen vrij van de objecten die niet worden gebruikt. In programmeertalen zoals C en C ++ moet de programmeur zelfstandig omgaan met geheugenbeheer. Maar in talen zoals C # die is gebouwd op .NET-framework biedt de garbage collector. Het helpt om het geheugen te beheren. Het kan niet worden gebruikt om de onbeheerde geheugenbronnen vrij te geven. De methode dispose () kan worden gebruikt om deze taak te voltooien.
De methode dispose () kan worden gebruikt om bronnen vrij te geven, zoals databaseverbindingen, bestandshandlers enz. Deze methode wordt niet automatisch aangeroepen. Daarom moet de programmeur deze methode implementeren. Zodra deze methode wordt aangeroepen, wordt het geheugen voor de betreffende onbeheerde bron vrijgegeven. Deze methode wordt gedeclareerd in de interface IDisposeable.
De laatste methode wordt alleen door de garbage collector aangeroepen wanneer de referentie naar een object niet verder wordt gebruikt. Deze methode wordt aangeroepen net voordat het object wordt vernietigd. Deze methode wordt geïmplementeerd met behulp van de destructor. De finalisatiemethode is gedefinieerd in de klasse java.lang.object. Deze methode is gedeclareerd als beschermd. Het is niet openbaar verklaard om toegang door de andere klassen te voorkomen. Over het algemeen kan de finalisatiemethode de prestaties van het programma minimaliseren omdat het geheugen niet onmiddellijk wordt bevrijd.
dispose () vs finalize () | |
De dispose () is een methode om niet-beheerde bronnen, zoals bestanden, streams die door een object worden gehouden, te sluiten of vrij te geven. | Het finaliseren is een methode om opruimacties uit te voeren op onbeheerde bronnen die door het huidige object worden vastgehouden voordat het object wordt vernietigd. |
Doelstelling | |
De dispose-methode wordt gebruikt om de niet-beheerde bronnen te bevrijden wanneer deze wordt opgeroepen. | De finalisatiemethode wordt gebruikt om de niet-beheerde bronnen te bevrijden voordat het object wordt vernietigd. |
Gedefinieerde interface of klasse | |
De dispose () wordt gedefinieerd in de interface IDisposable interface. | De finalize () is gedefinieerd in de klasse java.lang.object. |
Aanroepmethode | |
De dispose-methode wordt aangeroepen door de programmeur. | De laatste methode wordt aangeroepen door de garbage collector. |
toegangsspecificatie | |
De verwijderingsmethode is openbaar. | De definitieve methode is beveiligd. |
Snelheid | |
De dispose-methode wordt onmiddellijk aangeroepen. | De finaliseermethode wordt langzaam aangeroepen. |
Prestatie | |
De dispose minimaliseert de prestaties van het programma niet. | De finalisatiemethode kan de prestaties van het programma minimaliseren. |
Dit artikel bespreekt het verschil tussen dispose en finalize methods in C #. Het verschil tussen dispose () en finalize () is dat dispose () expliciet door de programmeur moet worden aangeroepen, terwijl finalize () door de garbagecollector wordt aangeroepen voordat het object wordt vernietigd.
1.Implementing Finalize en Dispose Unmanaged Resources opschonen. Beschikbaar Hier
2. Sharma, Nitya. "Back To Basics - Dispose Vs Finalize." C # Corner. Beschikbaar Hier
1.'Csharp Logo'door Andres15alvarez - Eigen werk, (CC BY-SA 4.0) via Commons Wikimedia