Anbefalt, 2024

Redaksjonens

Forskjellen mellom ref og ut i C #

"Ref" og "Out" er parametermodifiseringene som brukes i C #. Ved å bruke ref og ut, kan du passere alle verdier ved å henvise til hvilken som helst metode. Årsaken til å overføre noen verdi type ved referanse introduserer hovedforskjellen mellom ref og ut søkeord. Ref- søkeordet tillater den oppkalte metoden å endre innholdet i argumentet som sendes til det med ref-søkeord. Ut søkeordet tillater kalt metode å returnere mer enn én verdi ved en enkelt samtale. La oss studere forskjellen mellom ref og ut sammen med et sammenligningskjema.

Sammenligningstabel

Grunnlag for sammenligningRefUte
grunn~~POS=TRUNCDet gjør at endringen i verdien av argumentet fortsatte med ref søkeord.Det tillater en metode for å returnere disse verdiene foran et søkeord.
initialiseringRef-parameteren må initialiseres før metallsamtalen.Utgangsparameteren må initialiseres innenfor den anropte metoden før den avsluttes.
ErklæringParameteren som skal endres med en metode, er deklarert som ref mens metoden deklarasjon og metode anrop.Parameteren som skal returneres må deklareres som ref mens metodedeklarasjon og metodeoppringning.

Definisjon av Ref Keyword

"Ref" er en parameter modifier som brukes når det er behov for å ringe en metode med call-by-reference. Når vi ønsker det, må endringene som gjøres til argumentene i en kalt metode reflektere i den opprinnelige verdien av den variabelen, så brukes ref-parametermodifiseringsenheten. Verditypen som vi ønsker å erklære som referanse, foregår av "ref" søkeordet under metoden deklarasjon, og metoden ringer. Mer enn en parameter kan deklareres som en "ref" mens du ringer og erklærer en metode.

 bruker system; klasse DemoRef {public void Square (ref int s) {s = s * s; }} klasse Ref_main {static void Main () {DemoRef ob = ny DemoRef (); int a = 10; Console.WriteLine ("en før metallsamtale:" + a); ob.Square (ref a); // Brukes ref Keyword Console.WriteLine ("en etterfølgende samtale:" + a); }} // output en før metoden samtale: 10 a etter metodeanrop: 100 

I over kode blir variablen 'a' sendt som et argument til metoden Square (ref a) sammen med parametermodifieringsref-fekten som er knyttet til den. Det betyr hva som endrer metoden Square (ref a) vil utføre på variabelen 'a' i det vil reflektere i den opprinnelige verdien av 'a', utenfor metoden også.

Det er noen viktige punkter som må huskes når man arbeider med parameter modifier "ref".

  • Argumentet du overfører ref til en metode må initialiseres før metoden ringer.
  • Metoden må ikke tildele initialverdien til refargumentet.
  • Du kan også bruke ref sammen med referansevariabelen også.

Definisjon av ut søkeord

Hver gang du ringer en metode, vil den bare returnere en enkelt verdi. Hvis du vil ha en metode for å returnere mer enn én verdi på en samtale, må "ut" søkeordet brukes sammen med parametrene som du vil returnere tilbake når metoden avsluttes. Noen ganger er det tilfelle at når vi ikke ønsker å overføre noe til metoden, men vil at metoden skal returnere noe bruker vi parametre med et ut søkeord. La oss forstå det med et eksempel.

 bruker system; klasse DemoOut {public int Decompose (dobbelt x, ut dobbeltfraksjon) {int whole_num; whole_num = (int) x; fraksjon = x - hele_num; returnere whole_num; }} klasse Out_maint {static void Main () {DemoOut ob = ny DemoOut (); int jeg; dobbel frac; i = ob.Decompose (100.125, ut frac); // brukt ut søkeord Console.WriteLine ("Hele nummerdelen er" + i); Console.WriteLine ("fraksjon del er" + frac); }} // output Heltalldelen er 100 Brøkdel er 0.125 

I overkoden returneres to verdier av metoden Decompose (). Den returneres av søkeordet "return" dvs. hele_num, og andre returnerer en parameter som foregår av søkeordet, mens metoden kalles "frac".

De viktige poengene å huske om ut søkeordet.

  • I motsetning til ref-søkeord må parameteren som bruker ut søkeord, ikke initialiseres før metoden ringer.
  • Den kalte metoden vil selv tildele en verdi til parameteren med et ut søkeord som det anses å være uegnet i den kalte metoden, dvs. det antas å ikke ha noen innledende verdi.
  • Den anropte metoden må tildele en verdi til ut-parameteren før metoden avsluttes.
  • Ut søkeordet gjelder også for referansevariabelen.

Viktige forskjeller mellom ref og ut i C #

  1. Når en variabel som foregår av ref-nøkkelordet, overføres til en hvilken som helst metode, gjenspeiler endringene som er gjort på den inne i metoden i sin opprinnelige verdi. Når en variabel overføres til en metode, går det ut med søkeordet, og returnerer metoden uten å bruke returord.
  2. Ref-parameteren skal initialiseres før den sendes til en metode. På den annen side må utparameteren initialiseres inne i metoden den overføres til.
  3. Når du ringer, erklærer eller definerer en metode, er ref-parameter eksplisitt deklarert som ref. På den annen side, mens du ringer, erklærer eller definerer en metode, er ut parameteren eksplisitt deklarert som ute.

Konklusjon:

Når variabelen skal bestå av referansen til en metode, kan ref og ut søkeordet brukes. Mens årsaken til bruk av begge søkeordene er forskjellig hvor ref-søkeordet kan brukes til å endre verdien av argumentet som følger med ref-søkeord, sendes til den oppkalte metoden og ut-søkeordet brukes til å returnere verdien av argumentet foran ved ut søkeordet.

Top