Erinevus käsutamise () ja vormistamise () vahel C # vahel

Autor: Laura McKinney
Loomise Kuupäev: 2 Aprill 2021
Värskenduse Kuupäev: 13 Mai 2024
Anonim
Erinevus käsutamise () ja vormistamise () vahel C # vahel - Tehnoloogia
Erinevus käsutamise () ja vormistamise () vahel C # vahel - Tehnoloogia

Sisu


Meetodid dispose () ja finalise () on meetodid C #, mille abil vabastatakse objekti valduses olevad haldamata ressursid. Dispose () meetod on defineeritud kasutatavas liideses, samas kui meetod finalize () on määratletud klassiobjektis. Peamine erinevus dispose () ja finalise () vahel seisneb selles, et meetod utiliseerima() peab kasutaja selgesõnaliselt esile kutsuma, meetod aga viimistlema () kutsub prügikoguja vahetult enne objekti hävitamist. Uurime allpool toodud võrdlusdiagrammi abil mõnda muud nende vahelist erinevust.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm

Võrdluse aluskäsutama ()viimistlema ()
MääratletudMeetod dispose () on määratletud liidese ID-ühekordselt kasutatavas liideses.Meetod viib lõpule () id, mis on määratletud klassis java.lang.object.
Süntaksavalik tühine käsutada () {
// Kõrvaldage kood siia
}
kaitstud tühine lõpeta () {
// lõpukood siin
}
Kutsutud Kasutaja kutsub välja meetodi dispose ().Prügivedaja kutsub välja meetodi finalise ().
EesmärkMeetodit dispose () kasutatakse hallatamata ressursside vabastamiseks alati, kui sellele kutsutakse.Meetodit finalize () kasutatakse enne objekti hävitamist haldamata ressursside vabastamiseks.
RakendamineMeetod dispose () tuleb rakendada siis, kui on olemas meetod close ().Haldamata ressursside jaoks tuleb rakendada meetod finalize ().
JuurdepääsumäärajaMeetod dispose () kuulutatakse avalikuks.Meetod finalize () kuulutatakse privaatseks.
Tegevus Meetod dispose () on kiirem ja käsutab objekti kohe.Meetodi lõpuleviimine on utiliseerimisega võrreldes aeglasem
EtendusMeetod disposed () täidab hetkelisi toiminguid, seega ei mõjuta veebisaitide jõudlust. Meetod lõpuleviimine () aeglasem mõjutab veebisaitide jõudlust.


Võõrandamise määratlus ()

Dispose () meetod vabastab hallamata ressursid, mida klassi objekt hoiab. Haldamata ressursid on failid, andmeühendused jne. Meetod dispose () deklareeritakse liideses IDmatu ja selle rakendab klass, rakendades liidese IDisposable. Seda meetodit ei kutsuta automaatselt. Programmeerija peab selle käsitsi rakendama, kui loote kohandatud klassi, mida teised kasutavad. Meetodil on järgmine süntaks:

public void dispose () {// võõrandage kood siit}

Ülaltoodud süntaksis saate jälgida, et meetod kuulutatakse avalikuks. Sellepärast, et see meetod on määratletud kasutatavas liideses ja selle peab rakendama klass, kes seda liidest rakendab. Nii et rakendusklassile juurdepääsetavuse tagamiseks kuulutatakse meetod avalikuks.

Sellele meetodile kutsutakse käsitsi programmi kood, kui see on rakendatud käivitamiseks. Meetodite toimimine on kiire ja see vabastab koheselt klassi objekti valduses olevad ressursid.


Lõpuleviimise määratlus ()

Lõppvormistamise () meetod on määratletud jaotises objekt klass. Seda kasutatakse puhastustegevuseks. Seda meetodit kutsub prügikoguja, kui objekti viidet ei kasutata pikka aega. Prügikoguja vabastab hallatavad ressursid automaatselt, kuid kui soovite vabastada haldamata ressursid, näiteks faili käepide, andmeühendus jne, tuleb lõpliku vormistamise meetod käsitsi rakendada. Prügikoguja kutsub meetodit lõpule () enne, kui see objekti täielikult hävitab.

Meetodi süntaks lõpule viia ():

kaitstud kehtetu vormistama () {// viimistluskood siin}

Ülaltoodud süntaksis kuulutatakse meetod finalize () kaitstuks. Selle põhjuseks on asjaolu, et meetod finalize () ei tohi olla juurdepääsetav klassist väljastpoolt ja see peab olema ligipääsetav ainult prügikoristajale.

Lõpetamise () meetod mõjutab etenduse kulusid, kuna see ei vabasta mälu koheselt. C # -s nimetatakse viimistlusmeetodit automaatselt destruktoritega.

  1. Meetod dispose () on määratletud liideses ID käsutuses. Teisest küljest määratletakse klassis meetod finalize () objekt.
  2. Programmeerija peab koodi käsitsi kutsuma meetodi dispose () käsutusse, prügikoguja aga kutsub meetodi lõpuleviimise automaatselt enne objekti hävitamist.
  3. Protseduurimeetodile saab tugineda igal ajal, samas kui prügikoguja kutsub meetodi lõpule viima, kui ta leiab, et sellele objektile pole pikka aega viidatud.
  4. Meetod dispose () rakendatakse klassis pärast ID-käsutatava liidese rakendamist. Meetodit finalise () tuleb rakendada ainult domeeni jaoks haldamata ressursid kuna prügivedaja vabastab hallatud ressursid automaatselt.
  5. Meetodi dispose () juurdepääsu spetsifikaat on avalik, kuna see on määratletud kasutatavas liideses ja selle rakendaks klass, kes seda liidest rakendab, seega peaks see olema avalik. Teisest küljest on meetod finalize () kaitstud juurdepääsu spetsifikaadiga, nii et see ei peaks olema juurdepääsetav kõigile klassivälistele liikmetele.
  6. Meetod dispose () on kiire ja vabastab objekti koheselt, see ei mõjuta jõudluse kulusid. Meetod finalize () on aeglasem ega vabasta objekti käsutuses olevaid ressursse koheselt.

Järeldus:

Meetodi lõpuleviimiseks () on soovitatav kasutada meetodit dispose (), kuna see on kiirem kui lõplik vormistamine. Samuti võib seda vajadusel helistada igal ajal.