Forskjell mellom ref og ut parameter i c #

ref (referanse) Parameter
"Ref" -parameter brukes til å overføre verdien ved referanse fra aktuell parameter til formell parameter, dvs. fra callee-metoden til den kalte metoden. I C # er en parameter som er deklarert med en "ref" modifikator en referanseparameter. Når du sender parametere ved referanse, i motsetning til verdiparametere, opprettes ikke en ny plassering for denne parameteren. Eventuelle endringer i formell parameter vil gjenspeile i den aktuelle parameteren.

Eksempel på ref Parameter

1234567 tomromøkning (ref int m) m = m + 100; // verdien av n vil bli endret ..... int n = 50; Økning (ref n);

Som vist i programoversikten ovenfor, blir eventuelle endringer som er gjort til m, reflektert til n, ettersom parameteren er sendt ved referanse.

ut (utgang) Parameter
Utgangsparameter brukes til å sende resultatet tilbake til anropsfunksjonen. 'ut' søkeord brukes til å deklarere parameteren som en Output-parameter. I likhet med en referanseparameter oppretter ikke en utgangsparameter et nytt lagringssted. I stedet blir det et alias til parameteren i anropsmetoden.

Eksempel på ut Parameter

12345678910111213 bruk av system; klasse MyOutput static void Square (int p, ut int q) q = p * p; offentlig statisk tomrom main () int x; Square (5, ut x); Console.WriteLine et nummer er: "+ x);

I det ovennevnte programmet er x deklarert som en ut-parameter i samtalefunksjon, og som du kan se, har x ikke blitt initialisert. Når Square-funksjonen avsluttes, kopieres verdien av q til utgangsparameteren x.

Forskjell mellom ref og ut parameter i C #

  1. I referanseparameteret gjenspeiler endringer som er gjort i den formelle parameteren til den aktuelle parameteren, mens verdien i ut parameteren reflekteres tilbake til ut-parameteren for anropsfunksjonen.
  2. Den faktiske "output" faktiske parameteren har vanligvis ikke tildelt en verdi mens en faktisk parameter erklært som referanse, skal alltid tildeles en verdi før du ringer.
    Merk: Du må tildele verdien til ut-parameteren i metoden kropp; ellers vil metoden ikke bli kompilert.
  3. Både ut- og ref-parametere lager ikke en ny minneplassering.
  4. Ref og ut parametere behandles annerledes i løpet av run-time, men de blir behandlet like på kompileringstidspunktet.
DEN