C # er et moderne programmeringssprog udviklet af Microsoft. Det bruges til at udvikle forskellige applikationer til desktop, web og mobil. Funktioner eller metoder er et koncept i programmering. Den gruppe udsagn, der bruges til at udføre en bestemt opgave, er kendt som en funktion eller en metode. I C # -programmer begynder udførelsen fra main (). Det er et eksempel på en metode. Når der kaldes en metode, overføres data til metoden eller modtages fra metoden. Metoden, der kalder den nye metode, kaldes kalde metoden. Den nye metode er kendt som kaldet metode. C # bruger parametre til at styre de passerende værdier og få resultatet tilbage. De er værdsatte parametre, outputparametre og referenceparametre. Værdiparametrene bruges til at overføre parametre til metoden efter værdi. Referenceparametrene bruges til at videregive parametre til metoden ved hjælp af reference. Outputparametrene bruges til at videresende resultatet fra metoden. I C # bruges ud-nøgleord til outputparametre, og ref-nøgleord bruges til at referere til parametre. Det vigtigste forskel mellem ud og ref i C # er det, out er et nøgleord, der bruges til at henvise til en outputparameter, der bruges til at videregive resultater fra den kaldte metode til opkaldsmetode, mens ref er et nøgleord til at henvise til en referenceparameter, der bruges til at videregive data fra opkaldsmetode til kaldet metode og til at modtage dataene fra den kaldte metode til opkaldsmetoden.
1. Oversigt og nøgleforskel
2. Hvad er der i C #
3. Hvad er ref i C #
4. Ligheder mellem ud og ref i C #
5. Sammenligning side ved side - ud vs ref i C # i tabelform
6. Resume
Syntaks for funktion eller metode er som følger. En metode har et antal elementer, såsom metodenavn, parameterliste, returtype og adgangsspecifikation.
(parameterliste)
// erklæringer, der skal udføres
Hver metode har en unik metode til at foretage funktionen opkald. De eksekverbare udsagn er inde i krøllede seler. Returtypen forklarer, om funktionen returnerer en værdi eller ej. Når der ikke er nogen returtype, kaldes det annulleret. Adgangsspecifikator bruges til at specificere metodeadgang i applikationen. Parametrene bruges til at modtage eller videregive data til metoden. Der kan også være metoder uden parametre. Parametre kan værdsættes parametre, outputparametre eller referenceparametre.
Outputparametrene bruges til at videregive resultater tilbage til opkaldsmetoden. For dette skal parameteren deklareres med nøgleordet ud. Outputparameteren opretter ikke en ny lagerplads. Generelt returnerer en metode en værdi. Men i C # er det muligt at returnere to værdier fra en funktion ved hjælp af outputparametre. Se nedenstående program.
navneområde applikation1
beregning af offentlig klasse
offentlig ugyldig visning (out int a, out int b)
int-værdi = 5;
a = værdi;
b = værdi;
a = a * a;
b = b * b;
public static void main (String [] args)
int-værdi1 = 10, værdi2 = 20;
Beregning cal = ny Beregning ();
cal.display (ud værdi1, ud værdi2);
Console.ReadLine ();
Displayfunktionen kaldes fra hovedmetoden. Værdien1 og værdien to har 10 og 20, men de tages ikke med i metoden. Værdien af a er 25 og værdien af b er også 25 i funktionen. Derfor returneres disse værdier. Når der udskrives værdi1 og værdi2, giver det ikke 10 og 20. I stedet for udskrives det 25 og 25. Brug af nøgleordet kan flere værdier returneres fra metoden.
Når du passerer parametre efter værdi, oprettes en ny lagerplads for hver parameter. De faktiske parametre, der blev sendt fra hovedprogrammet, ændres ikke. I stedet kopieres disse værdier til en separat placering. Disse nye variable kopier kaldes formelle parametre. Se nedenstående kode.
navneområde applikation1
beregning af offentlig klasse
swap for offentlig annullering (int x, int y)
int temp;
temp = x;
x = y;
y = temp;
public static void main (String [] args)
Beregning cal = ny Beregning ();
int p = 2;
int q = 3;
cal.swap (p, q);
Console.WriteLine (p);
Console.WriteLine (q);
Console.ReadLine ();
I henhold til ovenstående program har beregningsklassen en metodebytte (). I hovedprogrammet oprettes et objekt af typen Beregning. Der er to værdier såsom p og q. Variablen p har værdi 2 og q-variablen har værdi 3. Disse to værdier overføres til swap-metoden. I swap-metoden kopieres værdien 2 til variabel x, og værdi 3 kopieres til variabel y. Ved hjælp af temp-variablen udskiftes værdierne. Tilbage i hovedprogrammet, når du udskriver p og q, udskiftes værdierne ikke. P-værdien er stadig 2 og q-værdien er 3. Selv i swap-metoden udskiftes værdier, men afspejles ikke i hovedprogrammet.
I modsætning til at videregive værdier som ovenfor er det muligt at videregive parametre ved henvisning. En referencevariabel er en henvisning til hukommelsesplacering. Der oprettes ingen ny hukommelsesplacering. Ændringerne i metoden afspejles i hovedprogrammet. I C # henvises referenceparametrene ved hjælp af ref-søgeord. Se nedenstående program.
navneområde applikation1
beregning af offentlig klasse
swap for offentlig annullering (ref int x, ref int y)
int temp;
temp = x;
x = y;
y = temp;
public static void main (String [] args)
Beregning cal = ny Beregning ();
int p = 2;
int q = 3;
cal.swap (ref p, ref q);
Console.WriteLine (p);
Console.WriteLine (q);
Console.ReadLine ();
I henhold til ovenstående program har klassen Beregning swapmetoden. I hovedprogrammet oprettes et objekt af typen Beregning. Det er to variabler såsom p og q. P-variablen har værdien 2 og q-variablen har værdien 3. I stedet for at videregive værdier overføres henvisningen til hukommelsesplaceringerne for p og q til metoden. Disse referencevariabler henvises til ved hjælp af ref. I swap-metoden, i stedet for at kopiere værdierne til et nyt sted, foretages ændringerne til de faktiske parametre. Når du udskriver p- og q-værdierne for hovedprogrammet, giver det de udskiftede værdier. Nu er p-værdien 3 og q-værdien er 2.
ud vs ref i C # | |
Udgangen er et nøgleord i C #, der bruges til at henvise til en outputparameter. Det bruges til at videregive resultaterne fra en kaldet metode til at kalde metoden. | Ref er et nøgleord i C #, der bruges til at henvise til en referenceparameter. Det bruges til at videregive data fra opkaldsmetode til kaldet metode og til at returnere data fra den kaldte metode til opkaldsmetode. |
Funktionalitet | |
Når du bruger nøgleordet ud, kan dataene overføres fra opkaldsmetode til den kaldte metode. Men disse data kasseres. Det bruges til at videregive resultatet til opkaldsmetoden fra kaldet metode. | Når du bruger nøgleordet ref, overføres dataene fra opkaldsmetode til den kaldte metode, og de manipulerede data føres tilbage til opkaldsmetoden. |
Videregivelse af data | |
Når du bruger nøgleordet ud, overføres dataene på en måde, der er en kaldet metode til opkaldsmetoden. | Når du bruger nøgleordet ref, overføres dataene på to måder, som er: fra opkaldsmetode til den kaldte metode og fra kaldet metode til opkaldsmetoden. |
Når man påberåber sig en metode, kan det være nødvendigt at videregive værdierne til metoden og at få resultaterne tilbage fra metoden. C # har forskellige parametre for at opnå det. Værdiparametrene bruges til at overføre parametre til metoden efter værdi. Referenceparametrene bruges til at videregive parametre til metoden ved hjælp af reference. Outputparametrene bruges til at videresende resultatet fra metoden. I C # bruges ud-nøgleord til outputparametre, og ref-nøgleord bruges til at referere til parametre. Forskellen mellem ud og ref i C # er, at ud er et nøgleord, der bruges til at henvise til en outputparameter, der bruges til at videregive resultater fra kaldet metode til opkaldsmetode, mens ref er et nøgleord til at henvise til en referenceparameter, der bruges til at videregive data fra opkaldsmetode til kaldet metode og for at modtage data fra den kaldte metode til opkaldsmetode.
Du kan downloade PDF-versionen af denne artikel og bruge den til offline-formål som angivet i citatnotatet. Download PDF-versionen her: Forskel mellem ud og ref i C #
1.tutorialspoint.com. “C # -metoder.” Pointen. Tilgængelig her
2.dnfvideo. C # Out-parametre Vs REF-parametre, .NET Interviewvideoer, 28. september 2015. Tilgængelig her
1.'C skarpt'By Mothmolevna - Eget arbejde, (Public Domain) via Commons Wikimedia