====== Passage de paramètres ====== ===== Passage par valeur ===== 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); } ===== Passage de paramètres en mise à jour ===== 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; } ===== Passage de paramètres en sortie ===== 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 [[bases_programmation:fonctions |fonction ]]. Le passage de paramètres en sortie est utile lorsque l'on doit changer la valeur de plusieurs paramètres. ===== Passage des objets par référence ===== 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.