logo

Paramètre Out avec des exemples en C#

Le dehors est un mot-clé en C# qui est utilisé pour transmettre les arguments aux méthodes en tant que type de référence. Il est généralement utilisé lorsqu'une méthode renvoie plusieurs valeurs.

Les points importants:



  • C'est similaire au mot-clé ref. Mais le principal différence entre la référence et la sortie Le mot-clé est que ref a besoin que la variable soit initialisée avant d'être transmise à la méthode. Mais le paramètre out ne nécessite pas que les variables soient initialisées avant d'être transmises à la méthode. Mais avant de renvoyer une valeur à la méthode appelante, la variable doit être initialisée dans la méthode appelée.
  • Il est également similaire au mot-clé in mais le dans le mot-clé ne permet pas à la méthode qui a appelé de modifier la valeur de l'argument mais réf permet.
  • Pour l'utilisation dehors mot-clé en tant que paramètre, la définition de la méthode et la méthode appelante doivent utiliser le dehors mot-clé explicitement.
  • Les paramètres out ne sont pas autorisés à être utilisés dans les méthodes asynchrones.
  • Les paramètres out ne sont pas autorisés à être utilisés dans les méthodes itératives.
  • Il peut y avoir plusieurs paramètres out dans une méthode.
  • Au moment de l’appel de la méthode, le paramètre out peut être déclaré en ligne. Mais les paramètres de sortie en ligne sont accessibles dans le même bloc de code où il appelle.
  • La surcharge de méthode peut également être effectuée en utilisant des paramètres out.
  • Les propriétés ne peuvent pas être transmises en tant que paramètres car ce ne sont pas des variables.
  • Jusqu'à C# 6.0, un utilisateur déclare d'abord la variable, puis elle ne peut la transmettre que comme argument de sortie. Mais à partir de C# 7.0, à l'exception d'une déclaration de variable distincte, l'utilisateur peut également déclarer la variable out dans la liste d'arguments de l'appel de méthode.

Déclaration du paramètre 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);>

Ici la valeur de Nom de variable doit être initialisé dans la méthode appelée avant de renvoyer une valeur.

Exemple:



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

>

>

Sortir:

The addition of the value is: 60>

Paramètres de sortie multiples : En C#, un utilisateur est autorisé à transmettre plusieurs paramètres de sortie à la méthode et la méthode renvoie plusieurs valeurs.

Exemple: Dans le code ci-dessous, nous avons déclaré deux variables de valeur sans initialiser, c'est-à-dire int i, j;. Nous transmettons maintenant ces paramètres à la méthode Addition en utilisant le mot-clé out comme Addition(out i, out j);. La valeur de ces variables est attribuée dans la méthode dans laquelle elles sont passées.

C#


comment ouvrir un fichier avec java



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

>

>

Sortir:

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

Amélioration du paramètre Out en C# 7.0 : Dans C# 7.0, de nouvelles fonctionnalités ont été ajoutées au paramètre out et les fonctionnalités sont :

  • En C# 7.0, le paramètre out peut être transmis sans sa déclaration ni son initialisation, appelée Déclaration en ligne du paramètre Out ou Implicite Paramètre de saisie . Sa portée est limitée au corps de la méthode, c'est-à-dire la portée locale.
  • Le paramètre out est autorisé à utiliser était tapez dans la liste des paramètres de la méthode.
  • Paramètre In out, il n'est pas obligatoire que le nom du paramètre out soit le même dans la définition et dans l'appel.
  • Il peut également être utilisé dans Try Pattern.

Exemple: Les programmes ci-dessous démontrent la déclaration en ligne du paramètre Out. Ici, la ligne de code, c'est-à-dire Area (out int length, out int width, out int Rarea) ; contient la déclaration en ligne du paramètre Out car ces variables sont directement déclarées dans l'appel de la méthode. La valeur des variables est initialisée dans la méthode dans laquelle elles sont passées.

commutateur Java

Note: Vous devez avoir besoin de la version C# 7.0 pour exécuter cet exemple.

Exemple:

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

>

>

Sortir:

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