De ute er et nøkkelord i C# som brukes for å sende argumentene til metoder som referansetype. Det brukes vanligvis når en metode returnerer flere verdier.
Viktige punkter:
- Det ligner på ref nøkkelord. Men det viktigste forskjell på ref og ut nøkkelordet er at ref trenger at variabelen må initialiseres før den overføres til metoden. Men ut-parameteren krever ikke at variablene initialiseres før den overføres til metoden. Men før den returnerer en verdi til den kallende metoden, må variabelen initialiseres i den kalte metoden.
- Det ligner også på søkeordet i men i nøkkelordet tillater ikke metoden som kalte å endre argumentverdien men ref muliggjør.
- For bruk ute nøkkelord som en parameter både metodedefinisjonen og kallemetoden må bruke ute søkeord eksplisitt.
- Ut-parametrene er ikke tillatt å bruke i asynkrone metoder.
- Ut-parametrene er ikke tillatt å bruke i iteratormetoder.
- Det kan være mer enn én ut-parameter i en metode.
- På tidspunktet for metodekall kan ut-parameteren deklareres inline. Men inline out-parametrene kan nås i samme kodeblokk som den kaller.
- Metodeoverbelastning kan også gjøres ved å bruke ut parametere.
- Egenskaper kan ikke sendes ut som parametere da disse ikke er variabler.
- Opp til C# 6.0, erklærer en bruker først variabelen, så kan den bare sendes som et ut-argument. Men fra C# 7.0, bortsett fra en separat variabeldeklarasjon, kan brukeren også deklarere ut-variabelen i argumentlisten til metodekallet.
Erklæring om ut parameter:
// No need to initialize // the variable here data_type variable_name; Method_Name(out variable_name); // you can also convert both above two // lines of codes as follows from // C# 7.0 onwards Method_Name(out data_type variable_name);>
Her verdien av variabelnavn må initialiseres i den kalte metoden før den returnerer en verdi.
Eksempel:
C#
// C# program to illustrate the> // concept of out parameter> using> System;> class> GFG {> >// Main method> >static> public> void> Main()> >{> >// Declaring variable> >// without assigning value> >int> i;> >// Pass variable i to the method> >// using out keyword> >Addition(>out> i);> >// Display the value i> >Console.WriteLine(>'The addition of the value is: {0}'>, i);> >}> >// Method in which out parameter is passed> >// and this method returns the value of> >// the passed parameter> >public> static> void> Addition(>out> int> i)> >{> >i = 30;> >i += i;> >}> }> |
>
>Produksjon:
The addition of the value is: 60>
Flere ut parametere: I C# har en bruker lov til å sende flere ut parametere til metoden og metoden returnerer flere verdier.
Eksempel: I koden nedenfor erklærte vi to verdivariabler uten å initialisere, dvs. int i, j;. Nå sender vi disse parameterne til addisjonsmetoden ved å bruke ut nøkkelord som Addisjon(ut i, ut j);. Verdien av disse variablene er tilordnet i metoden de passerte.
C#
Linux gratis ipconfig
// C# program to illustrate the> // concept of multiple out parameter> using> System;> class> GFG {> >// Main method> >static> public> void> Main()> >{> >// Declaring variables> >// without assigning values> >int> i, j;> >// Pass multiple variable to> >// the method using out keyword> >Addition(>out> i,>out> j);> >// Display the value i and j> >Console.WriteLine(>'The addition of the value is: {0}'>, i);> >Console.WriteLine(>'The addition of the value is: {0}'>, j);> >}> >// Method in which out parameters> >// are passed and this method returns> >// the values of the passed parameters> >public> static> void> Addition(>out> int> p,>out> int> q)> >{> >p = 30;> >q = 40;> >p += p;> >q += q;> >}> }> |
>
lage tabeller i lateks
>Produksjon:
The addition of the value is: 60 The addition of the value is: 80>
Forbedring av ut-parameter i C# 7.0: I C# 7.0 er det noen nye funksjoner lagt til ut-parameteren, og funksjonene er:
- I C# 7.0 kan ut-parameteren passere uten dens erklæring og initialisering, som kalles In-line erklæring om Out-parameter eller implisitt Skriv ut parameter . Dens omfang er begrenset til metodekroppen, dvs. lokalt omfang.
- Ut-parameteren er tillatt å bruke var skriv inn metodeparameterlisten.
- In out-parameteren er det ikke obligatorisk at navnet på ut-parameteren er det samme i både definisjon og kall.
- Den kan også brukes i Try Pattern.
Eksempel: Programmene nedenfor viser den innebygde deklarasjonen av Out-parameteren. Her linjen med kode, dvs. Area (ut int lengde, ut int bredde, ut int Sjeldent); inneholder den innebygde deklarasjonen av Out-parameteren ettersom disse variablene er direkte deklarert inne i metodekallet. Verdien av variablene initialiseres i metoden de passerte.
Merk: Du må kreve C# 7.0-versjon for å kjøre dette eksemplet.
Eksempel:
C#
// C# program to illustrate the> // concept of out parameter> using> System;> class> GFG> {> >// Main method> >static> public> void> Main()> >{> >// In-line declaring variables> >// without assigning values> >// Passing multiple variable to> >// the method using out keyword> >Area(>out> int> length,>out> int> width,>out> int> Rarea);> >// Display the value length, width, and Rarea> >System.Console.WriteLine(>'Length of the rectangle is: '>+ length);> >System.Console.WriteLine(>'Width of the rectangle is: '>+ width);> >System.Console.WriteLine(>'Area of the rectangle is: '>+ Rarea);> >Console.ReadLine();> >}> >// Method in which out parameters are passed> >// and this method returns the values of> >// the passed parameters> >public> static> void> Area(>out> int> p,>out> int> q,>out> int> Rarea)> >{> >p = 30;> >q = 40;> >Rarea = p * q;> >}> }> |
>
>
Produksjon:
Length of the rectangle is : 30 Width of the rectangle is : 40 Area of the rectangle is : 1200>