Maison >développement back-end >C++ >Quelle est la différence entre les mots clés de C # et `` Out 'de C # pour modifier les objets?

Quelle est la différence entre les mots clés de C # et `` Out 'de C # pour modifier les objets?

Susan Sarandon
Susan Sarandonoriginal
2025-01-24 12:01:09414parcourir

What's the Difference Between C#'s `ref` and `out` Keywords for Modifying Objects?

c # ref et out Mots-clés: une distinction claire

En C #, lorsque les méthodes doivent modifier les objets passés comme arguments, les mots clés ref et out jouent des rôles cruciaux. Bien que les deux permettent des modifications, leur comportement diffère considérablement.

ref Mot-clé: Modification des objets existants

Le mot-clé ref signifie que la méthode fonctionne directement sur l'objet d'origine passé comme un argument, pas une copie. Toute modification dans la méthode affecte directement l'objet d'origine. Surtout, l'objet doit être initialisé avant d'être transmis à la méthode.

out Mot-clé: création et renvoyer des objets

Inversement, le mot-clé out indique que la méthode est responsable de l'initialisation de l'objet. La méthode attribue une valeur à l'objet, et cet objet nouvellement initialisé est ensuite renvoyé à l'appelant. out Les paramètres sont déclarés mais ne nécessitent pas d'initialisation avant l'appel de la méthode.

Choisir le bon mot-clé

Le choix entre ref et out dépend de l'objectif de la méthode:

  • utiliser ref pour modifier un objet existant; La méthode ne crée pas un nouvel objet.
  • utiliser out pour créer et renvoyer un nouvel objet; La méthode est responsable de l'initialisation.

Exemples illustratifs:

<code class="language-csharp">public void ModifyWithRef(ref MyClass someClass)
{
    someClass.Property1 = 10;
}

public void CreateWithOut(out MyClass someClass)
{
    someClass = new MyClass { Property1 = 20 };
}</code>

ModifyWithRef Modifie un someClass existant en utilisant ref. CreateWithOut crée et initialise someClass en utilisant out. Notez la différence des exigences d'initialisation lors de l'appel de ces méthodes.

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