Passage de paramètres

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.