logo

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#


javatable



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

>

undtagelseshåndtering java
>

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>