Atšķirība starp apglabāšanu () un pabeigšanu ()

Galvenā atšķirība - atbrīvojieties () vs pabeigt ()
 

galvenā atšķirība starp disponēt () un pabeigt () ir tas programmētājs tieši atsaucas uz dispose (), kamēr atkritumu savācējs izsauc finalize () pirms objekta iznīcināšanas.

Dispose () ir metode, lai aizvērtu vai atbrīvotu nepārvaldītus resursus, piemēram, failus, straumes, kas atrodas objektā. Pabeigšana ir metode tīrīšanas operāciju veikšanai ar nepārvaldītiem resursiem, kas atrodas pašreizējā objektā, pirms objekts tiek iznīcināts.

SATURS

1. Pārskats un galvenās atšķirības
2. Kas ir apglabāšana ()
3. Kas tiek pabeigts ()
4. Līdzības starp atsavināšanu () un pabeigšanu ()
5. Salīdzinājums blakus - iznīciniet () un pabeidziet () tabulas formā
6. Kopsavilkums

Kas ir apglabāšana ()?

Viena no vissvarīgākajām .NET Framework priekšrocībām ir tā, ka tā nodrošina automātisku atkritumu savākšanu. Tas automātiski atbrīvo nelietoto objektu atmiņu. Programmēšanas valodās, piemēram, C un C ++, programmētājam pašam jātiek galā ar atmiņas pārvaldību. Bet tādās valodās kā C #, kas ir veidota uz .NET struktūras pamata, nodrošina atkritumu savācēju. Tas palīdz pārvaldīt atmiņu. To nevar izmantot, lai atbrīvotu neapsaimniekotos atmiņas resursus. Lai sasniegtu šo uzdevumu, var izmantot apglabāšanas () metodi.

Dispose () metodi var izmantot, lai atbrīvotu resursus, piemēram, datu bāzes savienojumus, failu apstrādātājus utt. Šī metode netiek izsaukta automātiski. Tādēļ programmētājam šī metode būtu jāievieš. Tiklīdz tiek izmantota šī metode, tiek atbrīvota konkrētā nepārvaldītā resursa atmiņa. Šī metode ir deklarēta interfeisā IDisposeable.

Kas tiek pabeigts ()?

Pabeigt metodi atkritumu savācējs izsauc tikai tad, ja atsauce uz objektu netiek izmantota tālāk. Šo metodi sauc tieši pirms objekta iznīcināšanas. Šī metode tiek ieviesta ar iznīcinātāja palīdzību. Pabeigšanas metode ir definēta klasē java.lang.object. Šī metode tiek pasludināta par aizsargātu. Tas nav pasludināts par publisku, lai izvairītos no citu klašu piekļuves. Kopumā pabeigšanas metode var samazināt programmas veiktspēju, jo tā uzreiz neatbrīvo atmiņu.

Kāda ir atsavināšanas () un pabeigšanas () līdzība?

  • Gan dispose (), gan finalize () var izmantot, lai atbrīvotu atmiņu, kas piešķirta nepārvaldītam resursam.

Kāda ir atšķirība starp atsavināšanu () un pabeigšanu ()?

atbrīvoties () vs pabeigt ()

Dispose () ir metode, lai aizvērtu vai atbrīvotu nepārvaldītus resursus, piemēram, failus, straumes, kas atrodas objektā. Pabeigšana ir metode, kā veikt tīrīšanu ar nepārvaldītiem resursiem, kas atrodas pašreizējā objektā, pirms objekts tiek iznīcināts.
 Objektīvs
Apglabāšanas metode tiek izmantota, lai atbrīvotu neapsaimniekotos resursus, kad tie tiek izsaukti. Pabeigšanas metode tiek izmantota, lai atbrīvotu neapsaimniekotos resursus pirms objekta iznīcināšanas.
Noteikta saskarne vai klase
Apglabāšana () ir definēta interfeisā IDisposable interfeiss. Pabeigt () nosaka java.lang.object klasē.
 Piesaukšanas metode
Programmētājs izmanto atsavināšanas metodi. Atkritumu savācējs izmanto pabeigto metodi.
Piekļuves specifikators
Apglabāšanas metode ir publiska. Pabeigšanas metode ir aizsargāta.
Ātrums
Apglabāšanas metode tiek izsaukta uzreiz. Pabeigšanas metode tiek izsaukta lēnām.
Performance
Atbrīvošanās no programmas nemazinās darbību. Pabeigšanas metode var samazināt programmas veiktspēju.

Kopsavilkums - atbrīvoties () vs pabeigt ()

Šajā rakstā tika apskatīta atšķirība starp disponēšanas un pabeigšanas metodēm C #. Atšķirība starp dispose () un finalize () ir tāda, ka programmētājam ir skaidri jāizsauc dispose (), kamēr atkritumu savācējs izsauc finalize () pirms objekta iznīcināšanas.

Atsauce:

1.Izpildīšana Pabeigt un rīkoties, lai attīrītu nepārvaldītus resursus. Pieejams šeit  
2.Šarma, Nitja. “Atpakaļ pie pamatiem - atbrīvojieties no darba pabeigšanas.” C # stūris. Pieejams šeit  

Attēla pieklājība:

1.'Csharp Logo'By Andres15alvarez - Savs darbs, (CC BY-SA 4.0), izmantojot Commons Wikimedia