Différence entre les paramètres ref et out dans c #

ref (Référence) Paramètre
Le paramètre "ref" est utilisé pour transmettre la valeur par référence du paramètre réel au paramètre formel, c'est-à-dire de la méthode appelée à la méthode appelée. En C #, un paramètre déclaré avec un modificateur «ref» est un paramètre de référence. Lorsque vous transmettez des paramètres par référence, contrairement aux paramètres de valeur, aucun nouvel emplacement n'est créé pour ce paramètre. Toute modification apportée au paramètre formel sera reflétée dans le paramètre actuel..

Exemple de paramètre de référence

1234567 Void Increment (réf int m) m = m + 100; // la valeur de n sera changée ..... int n = 50; Increment (ref n);

Comme indiqué dans l'extrait de programme ci-dessus, toute modification apportée à m sera répercutée sur n, le paramètre étant passé par référence..

Paramètre out (sortie)
Le paramètre de sortie est utilisé pour renvoyer le résultat à la fonction appelante. Le mot-clé 'out' est utilisé pour déclarer le paramètre en tant que paramètre de sortie. Semblable à un paramètre de référence, un paramètre de sortie ne crée pas de nouvel emplacement de stockage. Au lieu de cela, il devient un alias du paramètre dans la méthode d'appel..

Exemple de paramètre out

12345678910111213 using System; classe MyOutput static void Square (int p, out int q) q = p * p; public static void main () int x; Square (5, out x); Console.WriteLine ("Square of un n ° est: "+ x);

Dans le programme ci-dessus, x est déclaré en tant que paramètre out dans la fonction d'appel et, comme vous pouvez le constater, x n'a pas été initialisé. Lorsque la fonction Square se termine, la valeur de q sera copiée dans le paramètre de sortie x.

Différence entre les paramètres ref et out en C #

  1. En paramètre de référence, les modifications apportées au paramètre formel reflètent le paramètre actuel, tandis que dans le paramètre out, la valeur est renvoyée au paramètre out de la fonction appelante..
  2. Le paramètre actuel 'output' ne reçoit généralement pas de valeur alors qu'un paramètre réel déclaré comme référence doit toujours recevoir une valeur avant l'appel.
    Remarque: Vous devez attribuer une valeur au paramètre out dans le corps de la méthode. sinon la méthode ne sera pas compilée.
  3. Les paramètres out et ref ne créent pas de nouvel emplacement mémoire.
  4. Les paramètres ref et out sont traités différemment à l'exécution, mais ils sont traités de la même manière à la compilation..
IL