Ieteicams, 2024

Redaktora Izvēle

Atšķirība starp displeju () un pabeigšanu () C #

Metodes, kas tiek apglabātas () un pabeigtas (), ir C # metodes, kas tiek izmantotas, lai atbrīvotu objektu turētos nepārvaldītos resursus. Izmantot () metodi definē interfeisā IDisposable, bet metode ir pabeigta () ir definēta klases objekta iekšienē. Galvenā atšķirība starp iznīcināšanu () un pabeigšanu () ir tāda, ka lietotājam jāizmanto metode, kas atbrīvojas (), savukārt metode, kas pabeigta (), tiek izmantota atkritumu savācējam tieši pirms objekta iznīcināšanas. Izpētīsim dažas citas atšķirības starp tām, izmantojot zemāk redzamo salīdzinājumu tabulu.

Salīdzinājuma diagramma

Salīdzinājuma pamatsatbrīvoties ()pabeigt ()
DefinētsMetode, kas atbrīvojas (), ir definēta saskarnē IDisposable interface.Metode, kas pabeigta () id definēta java.lang.object klasē.
Sintaksepublic void Izmetiet () {
// Izmetiet kodu šeit
}
aizsargāta spēkā neesamība () {
// šeit pabeigšanas kods
}
UzsāktsLietotājs izsauc metodi ().Metode, kas pabeigta (), tiek izmantota atkritumu savācējam.
MērķisMetode, kas tiek izmantota (), tiek izmantota, lai atbrīvotu nepārvaldītos resursus, kad tas tiek izmantots.Metode pabeigta () tiek izmantota, lai atbrīvotu neapsaimniekotos resursus pirms objekta iznīcināšanas.
ĪstenošanaMetode jāizlieto () jāīsteno vienmēr, kad ir tuvu () metode.Metode ir pabeigta () ir jāīsteno nepārvaldītiem resursiem.
Piekļuves specifikācijaMetode, kas tiek realizēta (), tiek deklarēta kā publiska.Metode pabeigta () tiek pasludināta par privātu.
RīcībaŠī metode ir ātrāka un tūlīt atbrīvojas no objekta.Metode ir pabeigta lēnāk, salīdzinot ar apglabāšanu
VeiktspējaMetode atbrīvo () veic tūlītējo darbību, līdz ar to neietekmē tīmekļa vietņu darbību.Metode, kas pabeigta () ir lēnāka, ietekmē tīmekļa vietņu darbību.

Atbrīvošanās definīcija ()

Atbrīvošanās () metode atbrīvo neapsaimniekotos resursus, kas pieder pie klases objekta. Nepārvaldītie resursi ir faili, datu savienojumi utt. Metode, kas tiek izmantota (), ir deklarēta saskarē IDisposeable, un tā tiek īstenota klasē, ieviešot saskarni IDisposable. Šī metode netiek automātiski izsaukta. Programmētājam tas ir jāievieš manuāli, veidojot pielāgotu klasi, ko izmantos citi. Metodei ir šāda sintakse:

 public void dispose () {// Iznīcināt kodu šeit} 

Iepriekš minētajā sintaksē var novērot, ka metode ir deklarēta kā publiska. Tas ir tāpēc, ka šī metode ir definēta saskarnē IDisposable, un tā ir jāīsteno klasē, kas īsteno šo saskarni. Tātad, lai nodrošinātu pieejamību klases īstenošanai, metode tiek pasludināta par publisku.

Šī metode tiek izmantota manuāli, izmantojot programmas kodu, lai to izmantotu, lai to izmantotu. Metodes veiktspēja ir ātra, un tā uzreiz atbrīvo klases priekšmeta resursus.

Noslēguma definīcija ()

Objekta klasē ir definēta beigu () metode. To izmanto tīrīšanas darbībām. Šo metodi atkritumu savācējs izsauc, kad objekta atsauce netiek lietota ilgu laiku. Atkritumu savācējs automātiski atbrīvo pārvaldītos resursus, bet, ja vēlaties atbrīvot neapsaimniekotos resursus, piemēram, failu rokturi, datu savienojumu, utt., Galīgā metode ir jāievieš manuāli. Atkritumu savācējs atsauc metodi pabeigt () tieši pirms tā iznīcina objektu pilnībā.

Metodes sintakse ir pabeigta ():

 aizsargāta spēkā neesamība pabeigt () {// pabeigšanas kodu šeit} 

Sintaksē iepriekš minētā metode pabeigta () tiek pasludināta par aizsargātu. Iemesls tam ir, ka metode ir pabeigta () nedrīkst būt pieejama ārpus klases, un tai jābūt pieejamai tikai atkritumu savācējam.

Pabeigtā () metode ietekmē darbības izmaksas, jo tā neatbrīvo atmiņu uzreiz. C # gala pabeigšanas metode tiek automātiski izsaukta ar destruktoriem.

Galvenās atšķirības starp iznīcināšanu () un pabeigšanu ()

  1. Metode, kas atbrīvojas (), ir definēta interfeisā, kas ir iespējams. No otras puses, metode pabeigta () ir definēta klases objektā .
  2. Metode, kas tiek apglabāta (), manuāli jāiesaista koda iekšienē ar programmētāju, kamēr metode tiek pabeigta automātiski, pirms to iznīcina atkritumu savācējs.
  3. Metode var tikt izmantota jebkurā laikā, savukārt metode tiek pabeigta atkritumu savācējam, kad tā konstatē, ka šis objekts nav ilgstoši atsaukts.
  4. Metode, kas atbrīvojas (), tiek īstenota klasē pēc saskarnes IDisposable ieviešanas. Metode jāpabeidz () jāīsteno tikai nepārvaldītiem resursiem, jo pārvaldītie resursi automātiski tiek atbrīvoti no atkritumu savācēja.
  5. Metodes piekļuves specifikators () ir publiski pieejams, jo tas ir definēts interfeisā IDisposable, un to īstenotu klase, kas īsteno šo saskarni, tāpēc tai jābūt publiskai. No otras puses, metode ir pabeigta () ir aizsargāta piekļuves specifikācija, lai tā nebūtu pieejama nevienam dalībniekam ārpus klases.
  6. Metode atbrīvojas () ir ātra un atbrīvo objektu uzreiz, tāpēc tas neietekmē veiktspējas izmaksas. Metode pabeigta () ir lēnāka un neatbrīvo objekta turētos resursus uzreiz.

Secinājums:

Ieteicams izmantot metodi, lai atbrīvotu () pa metodi pabeigtu (), jo tas ir ātrāks par pabeigšanu. Tāpat, ja nepieciešams, to varētu saukt par jebkuru laiku.

Top