Maison >développement back-end >C++ >Valeur vs référence: comment C # passe-t-il les objets aux méthodes?
C # Transfert de paramètres de la méthode: type de valeur et type de référence
Dans C #, le comportement des variables de type non original a été largement accepté par référence. Cependant, certains développeurs peuvent rencontrer des différences lorsqu'ils traitent d'objets tels que System.Drawing.image. La compréhension des détails de la transmission d'objets est essentielle pour éviter les accidents.
Par défaut, l'objet n'est pas directement transmis à la méthode. Au lieu de cela, les valeurs correspondantes sont évaluées et les valeurs de paramètres initiales sont passées sous forme de paramètres. Pour le type de référence (type non original), cette valeur représente la référence à l'objet réel ou null. Par conséquent, toute modification de l'objet à l'intérieur de la méthode peut être visible pour l'appelant.
Cependant, il est important de noter que la valeur du paramètre est modifiée en un autre objet différent.
Pour transmettre la sémantique en fonction de la référence, les mots clés
ou doivent être utilisés, quel que soit le type de paramètre. En spécifiant ces mots clés, les paramètres eux-mêmes seront transmis en fonction de la référence pour garantir que les modifications apportées aux paramètres peuvent être visibles. out
ref
Ce qui suit est un exemple simplifié:
Au contraire, la modification des données dans l'objet de référence lors du passage de l'objet sera visible à l'appelant.
<code class="language-csharp">public void Foo(Image image) // 按值传递 { // 对参数的更改对调用者不可见。 image = Image.FromStream(...); } public void Foo(ref Image image) // 按引用传递 { // 对参数的更改对调用者可见。 image = Image.FromStream(...); }</code>
Pour une explication plus complète de ce thème, consultez l'article détaillé du lien fourni par la réponse fournie.
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!