Ut-parameter med eksempler i C#

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#




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

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