Ud-parameter med eksempler i C#

Det ud er et nøgleord i C#, som bruges til at overføre argumenterne til metoder som referencetype. Det bruges generelt, når en metode returnerer flere værdier.

Vigtige punkter:

  • Det ligner ref søgeord. Men det vigtigste forskel på ref og ud nøgleordet er, at ref kræver, at variablen skal initialiseres, før den overføres til metoden. Men ud-parameteren kræver ikke, at variablerne initialiseres, før de overføres til metoden. Men før den returnerer en værdi til den kaldende metode, skal variablen initialiseres i den kaldte metode.
  • Det ligner også søgeordet i men den i nøgleordet tillader ikke metoden, der kaldte, at ændre argumentværdien men ref tillader.
  • Til brug ud nøgleord som parameter skal både metodedefinitionen og kaldemetoden bruge ud søgeord eksplicit.
  • Ud-parametrene er ikke tilladt at bruge i asynkrone metoder.
  • Ud-parametrene er ikke tilladt at bruge i iteratormetoder.
  • Der kan være mere end én ud-parameter i en metode.
  • På tidspunktet for metodekaldet kan ud-parameteren erklæres inline. Men inline out-parametrene kan tilgås i den samme kodeblok, hvor den kalder.
  • Metodeoverbelastning kan også udføres ved hjælp af ud-parametre.
  • Egenskaber kan ikke videregives som parametre, da disse ikke er variable.
  • Op til C# 6.0 erklærer en bruger først variablen, så kan den kun sendes som et ud-argument. Men fra C# 7.0, bortset fra en separat variabeldeklaration, kan brugeren også erklære ud-variablen i argumentlisten for metodekaldet.

Erklæring af ude 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 værdien af variabel_navn skal initialiseres i den kaldte metode, før den returnerer en værdi.

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;> > }> }>

Produktion:

The addition of the value is: 60 

Flere ud-parametre: I C# har en bruger lov til at videregive flere parametre til metoden, og metoden returnerer flere værdier.

Eksempel: I nedenstående kode erklærede vi to værdivariabler uden initialisering, dvs. int i, j;. Nu videregiver vi disse parametre til tilføjelsesmetoden ved at bruge ud nøgleord som tilføjelse(ud i, ud j);. Værdien af ​​disse variable tildeles i den metode, hvor de passerede.

C#




// 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 

Forbedring af Out-parameter i C# 7.0: I C# 7.0 er der tilføjet nogle nye funktioner til ud-parameteren, og funktionerne er:

  • I C# 7.0 kan ud-parameteren passere uden dens erklæring og initialisering, som betegnes som In-line erklæring af Out parameter eller implicit Indtast parameter . Dens omfang er begrænset til metodelegemet, dvs. lokalt omfang.
  • Ud-parameteren er tilladt at bruge var indtast metodeparameterlisten.
  • In-out-parameteren er det ikke obligatorisk, at navnet på ud-parameteren er det samme i både definition og kald.
  • Det kan også bruges i Try Pattern.

Eksempel: Nedenstående programmer viser den inline-deklaration af Out-parameteren. Her kodelinjen dvs. Area(out int længde, ud int bredde, ud int Sjældent); indeholder den inline-deklaration af Out-parameteren, da disse variable er direkte erklæret inde i metodekaldet. Værdien af ​​variablerne initialiseres i den metode, hvor de passerede.

Bemærk: Du skal kræve C# 7.0 version for at køre dette eksempel.

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;> > }> }>

Produktion:

Length of the rectangle is : 30 Width of the rectangle is : 40 Area of the rectangle is : 1200