logo

Parametro Out con esempi in C#

IL fuori è una parola chiave in C# utilizzata per passare gli argomenti ai metodi come tipo di riferimento. Viene generalmente utilizzato quando un metodo restituisce più valori.

Punti importanti:



  • È simile alla parola chiave ref. Ma il principale differenza tra rif e out La parola chiave è che ref richiede che la variabile venga inizializzata prima di passare al metodo. Ma il parametro out non richiede che le variabili siano inizializzate prima di passare al metodo. Ma prima di restituire un valore al metodo chiamante, la variabile deve essere inizializzata nel metodo chiamato.
  • È anche simile alla parola chiave in ma the In la parola chiave non consente al metodo che ha chiamato di modificare il valore dell'argomento ma rif consente.
  • Per usare fuori parola chiave come parametro sia la definizione del metodo che il metodo chiamante devono utilizzare la parola chiave fuori parola chiave in modo esplicito.
  • Non è consentito utilizzare i parametri out nei metodi asincroni.
  • Non è consentito utilizzare i parametri out nei metodi iteratori.
  • In un metodo può essere presente più di un parametro out.
  • Al momento della chiamata al metodo, il parametro out può essere dichiarato inline. Ma è possibile accedere ai parametri inline out nello stesso blocco di codice in cui chiama.
  • L'overload del metodo può essere eseguito anche utilizzando i parametri out.
  • Le proprietà non possono essere passate come parametri out poiché non sono variabili.
  • Fino a C# 6.0, un utente dichiara prima la variabile, quindi può passarla solo come argomento out. Ma da C# 7.0, ad eccezione di una dichiarazione di variabile separata, l'utente può anche dichiarare la variabile out nell'elenco degli argomenti della chiamata al metodo.

Dichiarazione del parametro out:

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

Qui il valore di nome_variabile deve essere inizializzato nel metodo chiamato prima di restituire un valore.

Esempio:



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

>

>

Produzione:

The addition of the value is: 60>

Parametri multipli: In C#, un utente può passare più parametri in uscita al metodo e il metodo restituisce più valori.

Esempio: Nel codice seguente, abbiamo dichiarato due variabili valore senza inizializzare, ovvero int i, j;. Ora passiamo questi parametri al metodo Addition utilizzando la parola chiave out come Addition(out i, out j);. Il valore di queste variabili viene assegnato nel metodo in cui sono passate.

C#


qual è la dimensione dello schermo del mio monitor?



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

>

>

Produzione:

The addition of the value is: 60 The addition of the value is: 80>

Miglioramento del parametro Out in C# 7.0: In C# 7.0 sono state aggiunte alcune nuove funzionalità al parametro out e le funzionalità sono:

  • In C# 7.0, il parametro out può passare senza la relativa dichiarazione e inizializzazione, definita come the Dichiarazione in linea del parametro Out o implicito Digitare il parametro . Il suo ambito è limitato al corpo del metodo, ovvero all'ambito locale.
  • È consentito l'uso del parametro out era digitare l'elenco dei parametri del metodo.
  • Parametro In out, non è obbligatorio che il nome del parametro out sia lo stesso sia nella definizione che nella chiamata.
  • Può essere utilizzato anche in Try Pattern.

Esempio: I programmi seguenti dimostrano la dichiarazione in linea del parametro Out. Ecco la riga di codice, ovvero Area(out int length, out int width, out int Rarea); contiene la dichiarazione in linea del parametro Out poiché queste variabili vengono dichiarate direttamente all'interno della chiamata al metodo. Il valore delle variabili viene inizializzato nel metodo in cui sono passate.

Nota: Per eseguire questo esempio è necessaria la versione C# 7.0.

Esempio:

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

>

>

Produzione:

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