C # - Passage de paramètres par référence

Un paramètre de référence est un reference to a memory locationd'une variable. Lorsque vous transmettez des paramètres par référence, contrairement aux paramètres de valeur, aucun nouvel emplacement de stockage n'est créé pour ces paramètres. Les paramètres de référence représentent le même emplacement mémoire que les paramètres réels fournis à la méthode.

Vous pouvez déclarer les paramètres de référence à l'aide du refmot-clé. L'exemple suivant illustre ceci -

using System;

namespace CalculatorApplication {
   class NumberManipulator {
      public void swap(ref int x, ref int y) {
         int temp;

         temp = x; /* save the value of x */
         x = y;    /* put y into x */
         y = temp; /* put temp into y */
      }
      static void Main(string[] args) {
         NumberManipulator n = new NumberManipulator();
         
         /* local variable definition */
         int a = 100;
         int b = 200;

         Console.WriteLine("Before swap, value of a : {0}", a);
         Console.WriteLine("Before swap, value of b : {0}", b);

         /* calling a function to swap the values */
         n.swap(ref a, ref b);

         Console.WriteLine("After swap, value of a : {0}", a);
         Console.WriteLine("After swap, value of b : {0}", b);
 
         Console.ReadLine();
      }
   }
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Before swap, value of a : 100
Before swap, value of b : 200
After swap, value of a : 200
After swap, value of b : 100

Il montre que les valeurs ont changé à l'intérieur de la fonction d' échange et que ce changement se reflète dans la fonction principale .