Maison >développement back-end >C++ >Paramètres Ref vs Out dans .NET : quand devez-vous les utiliser ?

Paramètres Ref vs Out dans .NET : quand devez-vous les utiliser ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-11 08:25:42323parcourir

Ref vs. Out Parameters in .NET: When Should You Use Each?

Paramètres Ref et out dans .NET : quand les utiliser ?

Les paramètres ref et out dans .NET permettent de transmettre des variables par référence, permettant aux fonctions de modifier directement la valeur de la variable dans la méthode appelante. Bien qu’ils présentent des similitudes, il existe une différence essentielle à considérer.

Paramètre de référence

  • Nécessite qu'une référence (variable) soit initialisée avant de la passer à une fonction.
  • Modifier la référence passée à la fonction.
  • Généralement utilisé pour les données dont on sait qu'elles existent et doivent être modifiées.

Paramètre de sortie

  • Pas besoin d'initialiser la référence passée.
  • Données de sortie dans la fonction qui n'ont peut-être pas été initialisées auparavant.
  • Généralement utilisé lorsqu'une fonction renvoie une sortie supplémentaire ou crée de nouvelles variables pendant le fonctionnement.

Exemple de code

Considérons une fonction qui modifie l'entier passé dans Foo() :

<code class="language-csharp">void Foo(ref int x) {
    x++;
}</code>

Si vous transmettez une variable non initialisée à ref en utilisant l'argument Foo(), cela provoquera une erreur car la référence doit être définie sur une valeur avant de pouvoir être modifiée.

<code class="language-csharp">int y;  // 未初始化
Foo(ref y);  // 错误:调用方法前应初始化 y</code>

D'autre part, si vous utilisez out, la fonction peut créer et générer une nouvelle variable même si elle n'est pas fournie :

<code class="language-csharp">Foo(out y);  // 创建一个新变量并将其赋值给 y

Console.WriteLine(y);  // 输出:1(y 已由 Foo() 初始化)</code>

Quand utiliser lequel

  • Paramètre Ref : est utilisé pour modifier des données dont on sait qu'elles existent.
  • Paramètres de sortie : est utilisé pour renvoyer une sortie supplémentaire d'une fonction ou créer une nouvelle variable qui n'a pas été initialisée auparavant.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn