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:
ref
pour modifier un objet existant; La méthode ne crée pas un nouvel objet. 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!