logo

Out-parameter med exempel i C#

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>