Razlika između ref i izvan u C #

Autor: Laura McKinney
Datum Stvaranja: 2 Travanj 2021
Datum Ažuriranja: 5 Svibanj 2024
Anonim
The Difference between the United Kingdom, Great Britain and England Explained
Video: The Difference between the United Kingdom, Great Britain and England Explained

Sadržaj


"Ref" i "Out" su modifikatori parametara koji se koriste u C #. Pomoću ref i out možete proslijediti bilo koju vrstu vrijednosti referencijom na bilo koju metodu. Razlog prelaska bilo koje vrste vrijednosti referencom uvodi glavnu razliku između ref i out ključne riječi. Najbolje ključna riječ omogućuje pozvanoj metodi da promijeni sadržaj argumenta koji mu se prosljeđuje s ključnom riječi ref. van ključna riječ omogućuje pozvanoj metodi da vrati više vrijednosti u jednom pozivu. Proučimo razliku između ref i izvan, uz usporedni grafikon.

  1. Usporedni grafikon
  2. definicija
  3. Ključne razlike
  4. Zaključak

Usporedni grafikon

Osnove za usporedbuRefvan
Osnovni, temeljniDopušta promjenu vrijednosti argumenta koji se nastavlja s ključnom riječi ref.Ona omogućuje metodu da vrati one vrijednosti koje su prethodile ključnoj riječi.
InicijalizacijaParametar ref mora se inicijalizirati prije poziva metode.Parametar izlaza mora se inicijalizirati unutar pozvane metode prije nego što se ukine.
DeklaracijaParametar koji treba izmijeniti metodom deklarira se kao ref, dok se deklaracija metode i poziva metoda.Parametar koji se vraća mora biti proglašen ref, dok deklaracija metode i poziva metoda.


Definicija ključne riječi Ref

"Ref" je modifikator parametra koji se koristi kada postoji potreba za pozivanjem metode s pozivom po referenci. Kad želimo da se promjene argumenata unutar pozvane metode moraju odražavati u izvornoj vrijednosti te varijable, tada se koristi modifikator ref parametra. Vrijednosti vrste koju želimo navesti kao ref, prethodi ključnoj riječi "ref" tijekom deklaracije metoda i poziva metode. Više od jednog parametra može se deklarirati kao "ref" tijekom pozivanja i deklariranja metode.

pomoću sustava; klasa DemoRef {public void Square (ref int s) {s = s * s; }} klasa Ref_main {static void Main () {DemoRef ob = novi DemoRef (); int a = 10; Console.WriteLine ("a metoda prije poziva:" + a); ob.Square (ref. a); // Koristi ref Ključna riječ Console.WriteLine ("a nakon poziva:" + a); }} // izlaz a prije metode: 10 a nakon poziva metode: 100

U gornjem kôdu, varijabla 'a' se prosljeđuje kao argument metodu Square (ref a) zajedno s referiranim modifikatorom parametra. To znači da će se bilo kakve promjene metode Square (ref a) izvesti na varijabli 'a' unutar nje odražavati u izvornoj vrijednosti 'a', također izvan metode.


Neke su važne točke koje morate imati na umu kada se bavite modifikatorom parametra "ref".

  • Argument koji prosljeđujete ref na metodu mora se inicijalizirati prije poziva metode.
  • Metoda ne smije dodijeliti početnu vrijednost argumentu ref.
  • Možete koristiti i ref, uz referentnu varijablu.

Definicija izvan ključne riječi

Svaki put kad nazovete metodu, vratio bi samo jednu vrijednost. Ako želite da metoda uzvrati više od jedne vrijednosti pri pozivu, mora se koristiti ključna riječ "van", zajedno s parametrima koje želite vratiti natrag kada metoda prestane. Ponekad je slučaj da kada ne želimo ništa prenijeti na metodu, ali želimo da metoda vrati nešto što koristimo parametre s ključnom riječi van.Shvatimo to sa primjerom.

pomoću sustava; klasa DemoOut {public int Decompose (dvostruki x, dvostruki ulomak) {int whole_num; cijeli_num = (int) x; frakcija = x - cijeli_broj; vratiti cijeli_num; }} klasa Out_maint {static void Main () {DemoOut ob = novi DemoOut (); int i; dvostruki frak; i = ob.Sastavi (100.125, van frakcije); // iskorištena ključna riječ Console.WriteLine ("Cijeli dio broja je" + i); Console.WriteLine ("dio frakcije je" + frak); }} // izlaz cijelog broja je 100 Frakcijski dio je 0,125

U gornjem kôdu dvije se vrijednosti vraćaju metodom Decompose (). Jedan vraća ključnom riječju "return", tj. Cijeli_num, a drugi vraća parametar kojem prethodi ključna riječ "out", dok metoda poziva, tj. "Frac".

Važne točke koje treba imati na umu o ključnoj riječi.

  • Za razliku od ref ključne riječi, parametar koji upotrebljava ključnu riječ ne smije se inicijalizirati prije poziva metode.
  • Zvana metoda sama će dodijeliti vrijednost parametru s ključnom riječi van jer se smatra nepriznačenom unutar pozvane metode, tj. Pretpostavlja se da nema početne vrijednosti.
  • Pozvana metoda mora dodijeliti vrijednost parametru out prije nego što se metoda ukine.
  • Vanjska ključna riječ također se odnosi na referentnu varijablu.
  1. Kad se varijabli kojoj prethodi ključna riječ ref prenese na bilo koju metodu, tada se promjene koje se u njoj izvršavaju odražavaju u izvornoj vrijednosti. Kad se varijabli prosljeđenoj metodi pridruži ključna riječ, metoda vraća je bez upotrebe ključne riječi return.
  2. Parametar ref treba biti inicijaliziran prije nego što se prebaci na metodu. S druge strane, izlazni parametar mora se inicijalizirati unutar metode kojoj se prolazi.
  3. Dok poziva, izjavljuje ili definira metodu, parametar ref izričito se deklarira kao ref. S druge strane, dok pozivate, prijavljujete ili definirate način, parametar se izričito deklarira kao isključen.

Zaključak:

Kad god se varijabla treba prenijeti referencom na metodu, može se koristiti ključna riječ ref i out. Budući da su razlozi korištenja obje ključne riječi različiti gdje se ref ključna riječ može mijenjati vrijednost argumenta kojem prethodi ref ključna riječ, prelazi se na pozvanu metodu, a ključna riječ out koristi se za vraćanje vrijednosti argumenta koji je prethodio po ključnoj riječi out.