De ut är ett nyckelord i C# som används för att skicka argumenten till metoder som referenstyp. Det används vanligtvis när en metod returnerar flera värden.
Viktiga punkter:
- Det liknar ref nyckelord. Men det viktigaste skillnad mellan ref och ut nyckelordet är att ref behöver att variabeln måste initieras innan den skickas till metoden. Men out-parametern kräver inte att variablerna initieras innan den överförs till metoden. Men innan den returnerar ett värde till den anropande metoden, måste variabeln initieras i den anropade metoden.
- Det liknar också nyckelordet in men den i nyckelordet tillåter inte metoden som anropade att ändra argumentvärdet men ref tillåter.
- För att använda ut nyckelord som parameter måste både metoddefinitionen och anropsmetoden använda ut sökord uttryckligen.
- Ut-parametrarna är inte tillåtna att använda i asynkrona metoder.
- Ut-parametrarna är inte tillåtna att använda i iteratormetoder.
- Det kan finnas mer än en ut-parameter i en metod.
- Vid tidpunkten för metodanropet kan out-parametern deklareras inline. Men inline out-parametrarna kan nås i samma kodblock som den anropar.
- Metodöverbelastning kan också göras med hjälp av out-parametrar.
- Egenskaper kan inte skickas ut som parametrar eftersom dessa inte är variabler.
- Upp till C# 6.0 deklarerar en användare först variabeln och sedan kan den bara skickas som ett ut-argument. Men från C# 7.0, förutom en separat variabeldeklaration, kan användaren också deklarera ut-variabeln i argumentlistan för metodanropet.
Deklaration av uteparameter:
// 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);>
Här värdet av variabelnamn måste initieras i den anropade metoden innan den returnerar ett värde.
Exempel:
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;> > }> }> |
>
>Produktion:
The addition of the value is: 60>
Flera ut parametrar: I C# tillåts en användare att skicka ut flera parametrar till metoden och metoden returnerar flera värden.
Exempel: I koden nedan deklarerade vi två värdevariabler utan att initiera, dvs int i, j;. Nu skickar vi dessa parametrar till Addition-metoden med hjälp av ut nyckelord som Addition(out i, out j);. Värdet på dessa variabler tilldelas i metoden där de passerade.
C#
javascript för dropdown
// 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;> > }> }> |
>
>Produktion:
The addition of the value is: 60 The addition of the value is: 80>
Förbättring av Out-parameter i C# 7.0: I C# 7.0 har några nya funktioner lagts till ut-parametern och funktionerna är:
- I C# 7.0 kan ut-parametern passera utan dess deklaration och initiering som kallas In-line-deklaration av Out-parameter eller implicit Skriv ut parameter . Dess räckvidd är begränsad till metodkroppen, dvs lokal räckvidd.
- Ut-parametern är tillåten att använda var skriv i metodparameterlistan.
- In ut-parametern är det inte obligatoriskt att namnet på ut-parametern är detsamma i både definition och anrop.
- Den kan också användas i Try Pattern.
Exempel: Nedanstående program visar inline-deklarationen av parametern Out. Här kodraden, dvs Area(ut int längd, ut int bredd, ut int Sällsynt); innehåller inline-deklarationen av Out-parametern eftersom dessa variabler deklareras direkt i metodanropet. Variablernas värde initieras i metoden där de passerade.
Notera: Du måste kräva C# 7.0-versionen för att köra det här exemplet.
Exempel:
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;> > }> }> |
>
konvertera int till sträng
>
Produktion:
Length of the rectangle is : 30 Width of the rectangle is : 40 Area of the rectangle is : 1200>