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
Libérer: 2025-01-24 12:01:09
original
412 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal