Maison >développement back-end >C++ >Comment C # gère-t-il le passage des objets: pas-par valeur ou pass-by-référence?

Comment C # gère-t-il le passage des objets: pas-par valeur ou pass-by-référence?

DDD
DDDoriginal
2025-01-31 00:41:12967parcourir

How Does C# Handle Object Passing: Pass-by-Value or Pass-by-Reference?

dans la compréhension de l'objet dans C #

Généralement, les variables du type d'origine de C # en C # sont transmises par référence, et la valeur du type d'origine est transmise par valeur. Cependant, lors du traitement d'un objet de type de référence comme System.Drawing.image, une exception se produira.

Le comportement anormal de l'objet d'image

Lors du passage de l'objet image à la méthode, les modifications apportées dans cette méthode ne seront pas reflétées dans l'objet d'origine une fois la méthode renvoyée. Cela s'écarte de la sémantique de citation attendue.

La vérité de la valeur transmise

L'opposé de la cognition générale, l'objet lui-même n'est pas directement passé. Au lieu de cela, leurs valeurs seront évaluées et adoptées comme paramètres initiaux de la méthode. Pour le type de référence, cette valeur est une référence à l'objet existant. La modification de l'objet sera visible pour l'appelant.

Cependant, le paramètre fait référence à un autre objet, qui ne sera pas reflété dans la méthode d'appel. En effet, tous les paramètres sont transmis par défaut.

passant

Pour obtenir un comportement de transmission de référence réel, les mots clés REF ou OUT doivent être utilisés. Ces mots clés garantissent la valeur des paramètres et la position de stockage et le partage des paramètres. Par conséquent, la modification des paramètres sera observée par la méthode d'appel. En bref, bien que l'objet de type de référence ait été initialement transmis sur la valeur, leurs références peuvent être modifiées et les modifications apportées par l'objet de référence seront visibles à l'appel. Cependant, l'affectation du nouvel objet est attribuée au paramètre n'étendra pas la méthode de rappel. Pour obtenir un comportement de transmission de référence réel, REF ou OUT doit être explicitement utilisé.

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