Maison >développement back-end >C++ >Pourquoi ne puis-je pas modifier la valeur de retour d'une propriété C# implémentée automatiquement et comment puis-je y remédier ?
Tenter de modifier directement la propriété X
d'une propriété Origin
implémentée automatiquement (où Origin
est de type Point
) entraîne une erreur « Impossible de modifier la valeur de retour ». En effet, Point
, étant un type valeur (struct), est passé par valeur et non par référence.
Lorsque vous accédez à la propriété Origin
, vous travaillez avec une copie de la structure Point
, pas l'original. Les modifications apportées à cette copie sont ignorées.
La solution est d'éviter de modifier la copie. Au lieu de cela, vous devez accéder directement à la valeur Point
sous-jacente et la modifier. Ceci peut être réalisé en déclarant explicitement un champ de sauvegarde :
<code class="language-csharp">private Point _origin; public Point Origin { get { return _origin; } set { _origin = value; } }</code>
Maintenant, les modifications apportées à la propriété X
affecteront le Point
original stocké dans _origin
. Gardez à l'esprit que même si cette approche fonctionne bien pour les cas plus simples, des scénarios plus complexes peuvent nécessiter une logique de gestion des propriétés personnalisée.
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!