Soovitatav, 2024

Toimetaja Valik

Erinevus ref ja out vahel C #

“Ref” ja “Out” on parameetrite muutjad, mida kasutatakse C # -is. Ref ja out abil saate mistahes väärtuse tüübi üle kanda mis tahes meetodi abil. Mis tahes väärtustüübi viimise põhjus viitab peamisele erinevusele ref ja out märksõna vahel. Ref märksõna võimaldab kutsutud meetodil muuta argumenti, mis on talle ref-märksõnaga edastatud. Väljuv märksõna lubab kutsuda meetodit, et taastada ühe kõne korral rohkem kui üks väärtus. Uurime erinevust ref ja out ja võrdlustabeliga.

Võrdluskaart

Võrdluse alusRefVälja
PõhilineSee võimaldab korrigeerida argumenti väärtuse väärtust, mis toimus ref märksõna abil.See võimaldab meetodil tagastada need väärtused, mille ees on välja toodud märksõna.
InitsialiseerimineRef-parameeter tuleb vormindada enne meetodi kõnet.Väljundparameeter peab olema algatatud kutsutud meetodi sees enne selle lõppemist.
DeklaratsioonMeetodiga muudetav parameeter deklareeritakse kui ref, kuid meetodi deklaratsioon ja meetodi kutsumine.Tagastatav parameeter tuleb deklareerida ref kui meetodi deklaratsioon ja meetodi kutsumine.

Ref märksõna määratlus

„Ref” on parameetri muutja, mida kasutatakse siis, kui on vaja helistada meetodil, millele on lisatud viide. Kui me tahame, et valitud meetodi argumentides tehtud muudatused peavad peegeldama selle muutuja algset väärtust, siis kasutatakse ref-parameetri modifikaatorit. Väärtuse tüübile, mida me tahame deklareerida kui ref, eelneb “ref” märksõna meetodi deklareerimise ja meetodi kutsumise ajal. Meetodi helistamisel ja deklareerimisel võib nimetada rohkem kui ühe parameetri “ref”.

 süsteemi kasutamine; klass DemoRef {public void Square (ref int s) {s = s * s; }} klass Ref_main {static void Main () {DemoRef ob = uus DemoRef (); int a = 10; Console.WriteLine ("a enne meetodi kõnet:" + a); ob.Square (ref a); // Kasutatud ref märksõna Console.WriteLine ("a pärast kõnet:" + a); }} // väljund enne meetodi kõnet: 10 a pärast meetodi kõnet: 100 

Ülaltoodud koodis edastatakse muutuja "a" meetodi ruudu (ref a) argumendina koos sellele lisatud parameetri modifikaatoriga ref. See tähendab, et mis tahes muutused meetodil Square (ref a) täidab muutujaga 'a', mis peegeldub algse väärtuse „a” väärtuses väljaspool meetodit.

Mõned olulised punktid, mida parameetri modifikaatori „ref” käsitlemisel tuleb meeles pidada.

  • Argument, mida te refi meetodile läbite, tuleb enne meetodi kutsumist lähtestada.
  • Meetod ei tohi määrata ref argumenti algväärtust.
  • Võite kasutada ka refi koos viitemuutujaga.

Väljuva märksõna määratlus

Iga kord, kui helistate meetodile, tagastab see ainult ühe väärtuse. Kui soovite, et meetod, mis tagastaks kõne ajal rohkem kui ühe väärtuse, tuleb kasutada „out” märksõna koos parameetritega, mida soovite meetodi lõpetamisel tagasi pöörduda. Mõnikord on nii, et kui me ei soovi meetodile midagi edasi anda, vaid soovime, et meetod tagastaks midagi tagasi, kasutame parameetreid välja võtmata märksõnaga. Mõelgem selle näitega.

 süsteemi kasutamine; klass DemoOut {public int Laguneb (kahekordne x, topeltfraktsioon) {int terve_num; full_num = (int) x; fraktsioon = x - kogu_num; tagastama terve; }} class Out_maint {static void Main () {DemoOut ob = uus demoOut (); int i; kahekordne frac; i = ob.Decose (100, 125, välja frac); // kasutatud märksõna Console.WriteLine ("Kogu number on" + i); Console.WriteLine ("fraktsiooniosa on" + frac); }} // väljund Integer osa on 100 Fraktsiooniosa on 0, 125 

Ülaltoodud koodis tagastab meetod kaks väärtust, meetod Laguneb (). Üks see tagastatakse märksõna „tagasipöördumine”, st kogu_num, ja see tagastab parameetri, millele eelneb väljalõpetav märksõna, kui meetod helistab ehk “frac”.

Olulised punktid, mida meelde jätta võtmata märksõna kohta.

  • Erinevalt võtmesõna märksõnast ei tohi parameetreid kasutavat parameetrit lähtestada enne meetodi kutsumist.
  • Kutsutud meetod omistab parameetri väärtuse välja võtmesõnaga, kuna seda peetakse nimetamata meetodi sees, st eeldatakse, et sellel puudub algväärtus.
  • Kutsutud meetod peab enne meetodi lõppemist määrama väljuva parameetri väärtuse.
  • Väljuv märksõna on rakendatav ka viitemuutuja suhtes.

Põhilised erinevused Ref ja Out vahel C #

  1. Kui ükskõik millisele meetodile edastatakse muutuja, millele eelneb märksõna märksõna, siis selle meetodi sees tehtud muudatused kajastavad selle algset väärtust. Kui meetodile edastatud muutuja eelneb märksõnale, tagastab see meetod tagastamata märksõna kasutamata.
  2. Ref-parameeter tuleb enne meetodile edastamist lähtestada. Teisest küljest tuleb väljundparameeter lähtestada selle meetodi sees, mida see edastab.
  3. Meetodi kutsumisel, deklareerimisel või määratlemisel on ref-parameeter selgesõnaliselt deklareeritud kui ref. Teisest küljest, kui meetodit kutsutakse, deklareeritakse või määratletakse, siis väljub parameeter selgelt välja.

Järeldus:

Kui muutuja tuleb edastada viitega meetodile, võib kasutada ref ja out märksõna. Mõlema märksõna kasutamise põhjus on erinev, kui ref-märksõna saab kasutada, et muuta argumenti, mille ees on ref-märksõna, mis on edastatud kutsutud meetodile ja välja toodud märksõna kasutatakse tagastama argumenti väärtuse tagasi välja võtnud märksõna.

Top