====== 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.