Разлика между разпореждане () и финализиране ()

Ключова разлика - разпоредете се () срещу финализира ()
 

Най- ключова разлика между dispose () и finalize () е това dispose () трябва да бъде изрично извикан от програмиста, докато finalize () се извиква от боклука преди да унищожи обекта.

Dispose () е метод за затваряне или освобождаване на неуправляеми ресурси като файлове, потоци, държани от обект. Финализирането е метод за извършване на операции за почистване на неуправляеми ресурси, държани от текущия обект, преди обектът да бъде унищожен.

СЪДЪРЖАНИЕ

1. Преглед и ключова разлика
2. Какво е разпореждане ()
3. Какво се финализира ()
4. Прилики между разпореждане () и финализиране ()
5. Паралелно сравнение - изхвърлете () срещу финализирайте () в таблична форма
6. Резюме

Какво е разпореждане ()?

Едно от най-важните предимства на .NET Framework е, че осигурява автоматично събиране на боклука. Той автоматично освобождава паметта на обектите, които не се използват. В езици за програмиране като C и C ++ програмистът трябва да се справя самостоятелно с управлението на паметта. Но на езици като C #, който е изграден на .NET Framework осигурява сметника. Той помага да се управлява паметта. Не може да се използва за освобождаване на ресурси за управление на паметта Методът dispose () може да се използва за постигане на тази задача.

Методът dispose () може да се използва за освобождаване на ресурси като връзки към база данни, обработване на файлове и т.н. Този метод не се извиква автоматично. Следователно програмистът трябва да приложи този метод. Щом се извика този метод, се освобождава паметта за конкретния неуправляем ресурс. Този метод е деклариран в интерфейса IDisposeable.

Какво е финализиране ()?

Методът за финализиране се извиква само от колектора за събиране на боклук, когато позоваването на обект не се използва допълнително. Този метод се нарича точно преди унищожаването на обекта. Този метод се реализира с помощта на деструктора. Методът за финализиране е определен в класа java.lang.object. Този метод е деклариран като защитен. Не се обявява за обществено достояние, за да се избегне достъп от другите класове. Като цяло методът за финализиране може да сведе до минимум ефективността на програмата, тъй като не освобождава паметта мигновено.

Какво е сходството между dispose () и финализиране ()?

  • И двете разполагат () и финализират () могат да се използват за освобождаване на паметта, отредена за неуправляем ресурс.

Каква е разликата между разпореждане () и финализиране ()?

dispose () vs finalize ()

Dispose () е метод за затваряне или освобождаване на неуправляеми ресурси като файлове, потоци, държани от обект. Финализирането е метод за извършване на операции за почистване на неуправляеми ресурси, държани от текущия обект, преди обектът да бъде унищожен.
 Обективен
Методът за изхвърляне се използва за освобождаване на неуправляемите ресурси при извикване. Методът за финализиране се използва за освобождаване на неуправляемите ресурси, преди обектът да бъде унищожен.
Дефиниран интерфейс или клас
Dispose () е дефиниран в интерфейса ID за еднократна употреба. Финализирането () е определено в клас java.lang.object.
 Метод на извикване
Методът за изхвърляне се извиква от програмиста. Методът за финализиране се извиква от боклука.
достъп Спецификаторът
Методът за изхвърляне е публичен. Методът за финализиране е защитен.
скорост
Методът за изхвърляне се извиква незабавно. Методът за финализиране се извиква бавно.
производителност
Изхвърлянето няма да намали до минимум изпълнението на програмата. Методът за финализиране може да сведе до минимум ефективността на програмата.

Обобщение - изхвърлете () срещу финализира ()

Тази статия обсъжда разликата между методите за изхвърляне и финализиране в C #. Разликата между dispose () и finalize () е, че dispose () трябва да бъде изрично извикан от програмиста, докато finalize () се извиква от боклука преди да унищожи обекта.

справка:

1.Изпълнение Финализирайте и изхвърлете, за да почистите неуправляемите ресурси. Налични тук  
2.Шарма, Нитя. „Обратно към основите - Изхвърлете Vs Finalize.“ C # ъгъл. Налични тук  

С любезност на изображенията:

1.'Csharp Logo'By Andres15alvarez - Собствена работа, (CC BY-SA 4.0) през Commons Wikimedia