Razlika med ref in zunaj v C #

Avtor: Laura McKinney
Datum Ustvarjanja: 2 April 2021
Datum Posodobitve: 5 Maj 2024
Anonim
Делаем вентиляцию и кондиционер в квартире. #19
Video.: Делаем вентиляцию и кондиционер в квартире. #19

Vsebina


"Ref" in "Out" sta modifikatorja parametrov, ki se uporabljata v C #. S pomočjo ref in out lahko poljubno vrsto vrednosti prenesete s sklicevanjem na katero koli metodo. Razlog za prenos katere koli vrste vrednosti s sklicevanjem uvaja glavno razliko med ključno besedo ref in out. The ref ključna beseda omogoča priklicani metodi spreminjanje vsebine argumenta, ki mu je bil poslan, s ključno besedo ref. The ven ključna beseda omogoča imenovani način, da ob enem klicu vrne več kot eno vrednost. Preučimo razliko med ref in zunaj ter primerjalno tabelo.

  1. Primerjalna tabela
  2. Opredelitev
  3. Ključne razlike
  4. Zaključek

Primerjalna tabela

Osnove za primerjavoRefZunaj
OsnovniOmogoča spremembo vrednosti argumenta, ki se nadaljuje s ključno besedo ref.Omogoča način, da vrne tiste vrednosti pred ključno besedo ven.
InicializacijaParameter ref mora biti inicializiran pred klicem metode.Pred iztekom se mora izhodni parameter inicializirati znotraj klicane metode.
IzjavaParameter, ki ga je treba spremeniti z metodo, je naveden kot ref, medtem ko deklaracija metode in klic metode.Parameter, ki ga je treba vrniti, mora biti razglašen za ref, medtem ko deklaracija metode in klic metode.


Opredelitev ključne besede Ref

"Ref" je modifikator parametrov, ki se uporablja, kadar je treba poklicati metodo s klicem po referenci. Ko želimo, da se spremembe argumentov znotraj klicane metode odražajo v prvotni vrednosti te spremenljivke, potem uporabimo modifikator parametra ref. Vrednosti vrste, ki jo želimo označiti kot ref, je med deklaracijo metode in klicanjem metode ključna beseda ref. Med klicanjem in razglasitvijo metode lahko več parametrov označimo kot "ref".

z uporabo sistema; razred DemoRef {javni void Square (ref int s) {s = s * s; }} razred Ref_main {static void Main () {DemoRef ob = nov DemoRef (); int a = 10; Console.WriteLine ("klic pred načinom:" + a); ob.Square (ref. a); // Uporabljen ref Ključna beseda Console.WriteLine ("a po klicu:" + a); }} // izhod a pred klicem metode: 10 a po klicu metode: 100

V zgornji kodi se spremenljivka 'a' posreduje kot argument metodu Square (ref a) skupaj s spremenljivko ref. To pomeni, da se bodo vse spremembe, ki jih bo kvadrat (ref a) izvedel za spremenljivko 'a' v njej, odražale v prvotni vrednosti 'a', tudi zunaj metode.


Obstaja nekaj pomembnih točk, ki jih morate upoštevati pri spreminjanju parametrov „ref“.

  • Argument, ki ga posredujete prek ref do metode, mora biti inicializiran pred klicanjem metode.
  • Argumentu metoda ne sme dodeliti začetne vrednosti.
  • Uporabite lahko tudi ref, skupaj z referenčno spremenljivko.

Opredelitev ključne besede

Vsakič, ko pokličete metodo, bi vrnil samo eno vrednost. Če želite, da metoda pri klicu vrne več vrednosti, mora biti uporabljena ključna beseda "ven", skupaj s parametri, ki jih želite vrniti nazaj, ko se metoda konča. Včasih se zgodi, da kadar ne želimo ničesar posredovati metodi, ampak želimo, da metoda vrne nekaj, s čimer uporabimo parametre s ključno besedo ven.Razložimo ga s primerom.

z uporabo sistema; razred DemoOut {public int Razkroji (dvojni x, dvojni ulomek) {int celo_num; celi_num = (int) x; ulomek = x - celo_število; vrni celoten_num; }} razred Out_maint {static void Main () {DemoOut ob = nov DemoOut (); int i; dvojni frak; i = ob.Sestavi (100.125, zunaj frakcije); // uporabljena ključna beseda Console.WriteLine ("Del celotnega števila je" + i); Console.WriteLine ("delni del je" + frak); }} // Izhodni del celotnega števila je 100 Delni del je 0,125

V zgornji kodi se z metodo Decompose () vrneta dve vrednosti. Eno vrne s ključno besedo "return", tj. Celoten_num, drugo pa vrne parameter, pred katerim je ključna beseda out, medtem ko metoda kliče, tj. "Frac".

Pomembne točke, ki si jih morate zapomniti glede ključne besede.

  • Za razliko od ključne besede ref se pred klicanjem metode ne sme inicializirati parameter, ki uporablja ključno besedo.
  • Poklicana metoda bo samemu parametru dodeljena vrednost z zunanjo ključno besedo, saj se šteje, da znotraj imenovane metode ni dodeljena, to pomeni, da nima začetne vrednosti.
  • Klicana metoda mora dodeliti vrednost parametru out, preden se metoda preneha.
  • Ključna beseda out je uporabna tudi za referenčno spremenljivko.
  1. Ko se spremenljivka pred ključno besedo ref prenese na katero koli metodo, se spremembe, ki so bile v njej narejene, odražajo v prvotni vrednosti. Kadar se spremenljivki, predani metodi, pridruži ključna beseda ven, jo metoda vrne brez uporabe ključne besede return.
  2. Parameter ref se mora inicializirati, preden se prenese v metodo. Po drugi strani pa mora biti zunanji parameter inicializiran znotraj metode, v katero se prenese.
  3. Medtem ko kličete, izjavljate ali definirate metodo, je parameter ref izrecno naveden kot ref. Po drugi strani pa je med pozivanjem, označevanjem ali definiranjem metode izhodni parameter izrecno izjavljen kot zunaj.

Zaključek:

Kadar koli spremenljivko posredujemo s sklicevanjem na metodo, lahko uporabimo ključno besedo ref in out. Medtem ko so razlogi za uporabo obeh ključnih besed različni, kadar se lahko s ključno besedo ref spremeni vrednost argumenta pred ključno besedo ref, posreduje klicani metodi in ključna beseda out se uporabi za vrnitev vrednosti argumenta pred po ključni besedi ven.