Forskellen mellem ref og ud i C #

Forfatter: Laura McKinney
Oprettelsesdato: 2 April 2021
Opdateringsdato: 5 Kan 2024
Anonim
Women’s pixie haircut From and To! Diagram for haircuts! Step-by-step execution technology!
Video.: Women’s pixie haircut From and To! Diagram for haircuts! Step-by-step execution technology!

Indhold


“Ref” og “Out” er de parametermodifikatorer, der bruges i C #. Ved hjælp af ref og out kan du videregive en hvilken som helst værditype ved dens henvisning til enhver metode. Årsagen til at videregive en hvilken som helst værditype ved dens reference introducerer den største forskel mellem søgeordet ref og out. Det ref nøgleord gør det muligt for den kaldte metode at ændre indholdet af det argument, der er sendt til det med ref søgeord. Det ud nøgleord tillader kaldet metode at returnere mere end en værdi ved et enkelt opkald. Lad os undersøge forskellen mellem ref og ud sammen med et sammenligningskort.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningRefUd
GrundlæggendeDet tillader ændring i værdien af ​​argument, der fortsættes med ref-søgeord.Det tillader en metode at returnere de værdier, der er forudgående med et ud søgeord.
InitialiseringRef-parameteren skal initialiseres inden metodekaldet.Out-parameteren skal initialiseres inden i den kaldte metode, inden den afsluttes.
ErklæringParameteren, der skal ændres af en metode, erklæres som ref, mens metodedeklaration og metodeopkald.Parameteren, der skal returneres, skal deklareres som ref, mens metodedeklaration og metodeopkald.


Definition af Ref søgeord

"Ref" er en parametermodifikator, der bruges, når der er behov for at ringe til en metode med opkaldsreference. Når vi ønsker, at ændringerne, der er foretaget i argumenterne i en kaldet metode, skal afspejle den oprindelige værdi af den variabel, anvendes ref-parametermodifikatoren. Den værditype, som vi ønsker at erklære som en ref, er forudgående af "ref" nøgleordet under metodedeklaration og metodeopkald. Mere end en parameter kan erklæres som en "ref", mens der kaldes og erklæres for en metode.

ved hjælp af system; klasse DemoRef {public void Square (ref int s) {s = s * s; }} klasse Ref_main {statisk void Main () {DemoRef ob = new DemoRef (); int a = 10; Console.WriteLine ("a før metodekald:" + a); ob.Square (ref a); // Brugt ref-søgeordskonsol.WriteLine ("et efteropkald:" + a); }} // output a før metodekald: 10 a efter metodekald: 100

I ovenstående kode overføres variablen 'a' som et argument til metoden Square (ref a) sammen med den parametermodifikator ref, der er knyttet til den. Det betyder, uanset at ændringer af metoden Square (ref a) vil udføre på variablen 'a' inde i det, vil afspejle sig i den oprindelige værdi af 'a', uden for metoden.


Der er nogle vigtige punkter, som skal huskes, når man beskæftiger sig med parametermodifikator “ref”.

  • Argumentet, du videresender af ref til en metode, skal initialiseres inden metoden kaldes.
  • Metoden må ikke tildele initialværdien til ref-argumentet.
  • Du kan også bruge ref sammen med referencevariablen.

Definition af Out-søgeord

Hver gang du kalder en metode, returnerer den kun en enkelt værdi. Hvis du vil have en metode til at returnere mere end en værdi ved et opkald, skal "out" -søgeordet bruges sammen med de parametre, du vil vende tilbage, når metoden afsluttes. Nogle gange er det sådan, at når vi ikke ønsker at videregive noget til metoden, men ønsker, at metoden skal returnere noget, bruger vi parametre med et ud-søgeord.Lad os forstå det med et eksempel.

ved hjælp af system; klasse DemoOut {public int Decompose (dobbelt x, out dobbelt brøk) {int hele_num; hele_num = (int) x; fraktion = x - hele_num; returnere hele_num; }} klasse Out_maint {statisk void Main () {DemoOut ob = new DemoOut (); int i; dobbelt frac; i = ob.Dekomponer (100,125, fraktion); // brugt nøgleord Console.WriteLine ("Hele nummerdel er" + i); Console.WriteLine ("fraktionsdel er" + frac); }} // output Heltalsdel er 100 Fraktionsdel er 0,125

I ovenstående kode returneres to værdier ved hjælp af metoden Decompose (). Den ene returnerer med nøgleordet "return", dvs. hele_num, og det andet returnerer en parameter, der er forudgående af out-nøgleordet, mens metoden kaldes "frac".

De vigtige punkter, du skal huske på om nøgleordet.

  • I modsætning til ref-søgeord, må parameteren, der bruger nøgleordet, ikke initialiseres før metodekald.
  • Den kaldte metode tildeler selv en værdi til parameteren med et ud-nøgleord, da det betragtes som ikke tildelt inden i den kaldte metode, dvs. det antages ikke at have nogen startværdi.
  • Den kaldte metode skal tildele en værdi til parameteren ud, før metoden afsluttes.
  • Out-nøgleordet er også relevant for referencevariablen.
  1. Når en variabel, der er gået forud for ref-nøgleordet, sendes til en hvilken som helst metode, afspejles ændringerne, der er foretaget i den i metoden, i dens oprindelige værdi. Når en variabel, der videregives til en metode, forud for et ud søgeord, returnerer metoden den uden at bruge return søgeord.
  2. Ref-parameteren skal initialiseres, før den overføres til en metode. På den anden side skal out-parameteren initialiseres inden i den metode, den overføres til.
  3. Mens der kaldes, erklæres eller defineres en metode, er ref-parameter udtrykkeligt erklæret som ref. På den anden side erklæres out-parameteren eksplicit som ude, mens du kalder, erklærer eller definerer en metode.

Konklusion:

Hver gang variablen skal sendes ved henvisning til en metode, kan søgeordet ref og out bruges. Der henviser til, at grunden til at bruge begge nøgleordene er forskellige, hvor ref-nøgleordet kan bruges til at ændre værdien af ​​argumentet forud for ref-søgeord, videresendt til den kaldte metode, og ud-nøgleordet bruges til at returnere værdien af ​​det argument, der er forudgående med ud-nøgleordet