Soovitatav, 2021

Toimetaja Valik

Erinevus kõrvaldamise () ja lõpliku () vahel C #

Meetodid, mille käsutuses on () ja lõpuleviimine (), on C # meetodid, mida kasutatakse objekti haldamata ressursside vabastamiseks. Hävitamise () meetod on defineeritud liidese IDisposable, samas kui meetod on lõplik () defineeritud klassi objekti sees. Peamine erinevus käsutamise () ja lõpliku () vahel on see, et kasutaja peab kasutama meetodit (), kuid meetod lõpeb (), mida kasutab prügi koguja vahetult enne objekti hävitamist. Uurime mõningaid muid erinevusi nende vahel allpool toodud võrdluskaardi abil.

Võrdluskaart

Võrdluse aluskõrvaldama ()viimistlema ()
MääratletudMeetod kõrvaldatakse () on defineeritud liidese IDisposable interface kaudu.Meetod viimistleb () id, mis on määratletud java.lang.object klassis.
Süntaksiavalik void Hävita () {
// Keelake kood siia
}
kaitstud tühine viimistlus () {
// siin on lõplik kood
}
KutsutudKasutaja kasutab meetodit (), mida kasutatakse.Meetodi viimistlemine () viitab prügi kogujale.
EesmärkMeetodi käsutamiseks () kasutatakse hallamata ressursside vabastamiseks alati, kui seda kasutatakse.Meetodi viimistlemine () kasutatakse selleks, et vabastada juhtimata ressursid enne objekti hävitamist.
RakendamineMeetod kõrvaldatakse () tuleb rakendada alati, kui on olemas lähedane () meetod.Meetod viiakse lõpule (), mida rakendatakse majandamata ressursside puhul.
Juurdepääs spetsifikatsioonileMeetod käsutatakse () avalikustatakse.Meetod viimistletakse () on deklareeritud eraviisiliselt.
MeedeMeetod käsutatakse () on kiirem ja koheselt kõrvaldab objekti.Meetodi viimistlemine on aeglasem kui kõrvaldada
ToimivusMeetod kõrvaldab () hetktegevuse, seega ei mõjuta see veebisaitide toimimist.Meetod viimistleb (), kuna see aeglustab veebisaitide toimivust.

Hävitamise mõiste ()

Hävitamise () meetod vabastab liigitamata ressursid, mis kuuluvad klassi objektile. Haldamata ressursid on failid, andmesideühendused jne. Meetod käsutatakse () deklareeritakse liideses IDisposeable ja seda rakendab klass rakendades liidese IDisposable. Seda meetodit ei kutsuta automaatselt. Programmeerija peab seda käsitsi rakendama, kui loote kohandatud klassi, mida teised kasutavad. Meetodil on järgmine süntaks:

 avalik void käsutada () {// Keelake kood siin} 

Ülaltoodud süntaksis saab märkida, et meetod on avalikustatud. Seda seetõttu, et see meetod on määratletud liideses IDisposable ja seda peab rakendama klass, mis rakendab seda liidest. Seega, rakendusklassi ligipääsetavuse tagamiseks on meetod avalikustatud.

Seda meetodit rakendatakse käsitsi programmi koodiga, et seda rakendada. Meetodite jõudlus on kiire ja vabastab koheselt klassi objekti valduses olevad ressursid.

Lõpetamise mõiste ()

Lõplik () meetod on määratletud objektiklassis . Seda kasutatakse puhastustegevuseks. Seda meetodit nimetab prügi koguja, kui objekti viiteid ei kasutata pikka aega. Prügi koguja vabastab hallatavad ressursid automaatselt, kuid kui soovid vabastada haldamata ressursid, nagu failihoidik, andmesideühendus jne, tuleb lõplik meetod rakendada käsitsi. Prügi koguja kutsub meetodi viimistlema () vahetult enne objekti täielikku hävitamist.

Meetodi süntaks viimistletakse ():

 kaitstud void finalize () {// lõpliku koodi siin} 

Ülaltoodud süntaksis on meetod lõplikult vormistatud () kaitstud. Selle põhjuseks on see, et meetod lõpule viia () ei tohi olla kättesaadav väljastpoolt klassi ja see peab olema kättesaadav ainult prügi kogujale.

Lõpetamise () meetod mõjutab jõudluse maksumust, kuna see ei vabasta mälu koheselt. C # -is nimetatakse lõplik meetod automaatselt destruktoritega.

Peamised erinevused kõrvaldamise () ja lõpetamise vahel ()

  1. Meetod käsutatakse () on defineeritud liideses, mida on võimalik identifitseerida . Teisest küljest on meetod lõplikuks () määratletud klassiobjektis .
  2. Meetod, mille käsutuses on (), tuleb programmeerija poolt koodis käsitsi käivitada, kuid meetod lõpeb automaatselt, kui prügi koguja enne objekti hävitamist.
  3. Meetod käsutatakse igal ajal, samas kui meetod lõpule viitab prügi kogujale, kui ta leiab, et seda objekti ei ole juba pikka aega viidatud.
  4. Meetod kõrvaldatakse () rakendatakse klassis pärast liidese IDisposable rakendamist. Meetod viimistletakse () tuleb rakendada ainult haldamata ressursside jaoks, sest hallatavad ressursid vabastatakse automaatselt prügi kogujalt.
  5. Meetodi juurdepääsu spetsifikatsioon () on avalik, kuna see on määratletud liideses IDisposable ja seda rakendaks see liides, mis rakendab seda liidest, seega peaks see olema avalik. Teisest küljest on meetodil lõpule viidud () kaitstud juurdepääsu spetsifikatsioon, nii et see ei tohiks olla kättesaadav kõigile liikmetele väljaspool klassi.
  6. Meetod käsutatakse () on kiire ja vabastab objekti koheselt, seega ei mõjuta see jõudluse kulusid. Meetod viimistletakse () on aeglasem ja ei vabasta kohe objekti valduses olevaid ressursse.

Järeldus:

Soovitatakse kasutada meetodit () üle meetodi lõpuleviimiseks (), kuna see on kiirem kui lõplik. Samuti võib seda vajaduse korral igal ajal nimetada.

Top