Maison > développement back-end > C++ > Pourquoi la modification d'une propriété C# implémentée automatiquement entraîne-t-elle une erreur « Impossible de modifier la valeur de retour » ?

Pourquoi la modification d'une propriété C# implémentée automatiquement entraîne-t-elle une erreur « Impossible de modifier la valeur de retour » ?

DDD
Libérer: 2025-01-19 09:27:12
original
248 Les gens l'ont consulté

Why Does Modifying a C# Auto-Implemented Property Result in a

Résolution de l'erreur « Impossible de modifier la valeur de retour » dans les propriétés implémentées automatiquement en C#

Les propriétés C# implémentées automatiquement offrent une approche simplifiée de l'encapsulation des données. Cependant, les tentatives de modification directe de ces propriétés peuvent conduire à l'erreur de compilation frustrante « Impossible de modifier la valeur de retour ».

Cette erreur se produit car les propriétés implémentées automatiquement renvoient une copie des données sous-jacentes lors de l'accès. Par conséquent, les modifications apportées à cette copie ne sont pas conservées ; ils n'affectent pas la valeur stockée d'origine.

Observez l'exemple suivant :

<code class="language-csharp">public Point Origin { get; set; }

Origin.X = 10; // Results in CS1612 error</code>
Copier après la connexion

L'erreur se produit car Point est un type valeur (struct). L'accès à Origin fournit une copie, pas une référence directe. La modification de la propriété X de la copie laisse l'original Origin inchangé.

La solution consiste à utiliser un type référence (classe) ou à employer une variable intermédiaire. Voici une approche corrigée :

<code class="language-csharp">Origin = new Point(10, Origin.Y);</code>
Copier après la connexion

Ce code crée un nouvel objet Point avec la coordonnée X mise à jour et le réaffecte à la propriété Origin. Puisque Origin est un type référence, cette modification est correctement reflétée dans le magasin de support.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal