La variable transmise en paramètre retrouvera sa valeur initiale à la sortie de la méthode même si elle a été changée au sein de la méthode.
static void Main(string[] args)
{
int age = 30;
Doubler(age);
Console.WriteLine(age); //age vaut 30
}
public static void Doubler(int valeur)
{
valeur = valeur * 2;
Console.WriteLine(valeur);
}
Pour pouvoir modifier la valeur du paramètre passé, il faut indiquer que la variable est en mode « mise à jour ». Cela se fait grâce au mot-clé « ref ».
static void Main(string[] args)
{
int age = 30;
Doubler(ref age);
Console.WriteLine(age); //age vaut 60
}
public static void Doubler(ref int valeur)
{
valeur = valeur * 2;
}
Le mode de passage de paramètres en sortie permet de faire en sorte qu’une méthode force l’initialisation d’une variable et que l’appelant récupère la valeur initialisée.
static void Main(string[] args)
{
int age = 30;
int ageDouble;
Doubler(age, out ageDouble);
Console.WriteLine(age); //age vaut 30
Console.WriteLine(ageDouble); //ageDouble vaut 60
}
public static void Doubler(int age, out int resultat)
{
resultat = age * 2;
}
Lorsque vous retournez une seule valeur, il vaut mieux utiliser un Return dans une fonction . Le passage de paramètres en sortie est utile lorsque l'on doit changer la valeur de plusieurs paramètres.
Le fait de passer un objet à une méthode équivaut à passer la référence de l’objet en paramètres. Ainsi, c’est comme si on utilisait le mot-clé ref implicitement.