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.