Maison >développement back-end >C++ >Pourquoi le message « Impossible de modifier la valeur de retour » se produit-il avec les propriétés implémentées automatiquement en C# ?

Pourquoi le message « Impossible de modifier la valeur de retour » se produit-il avec les propriétés implémentées automatiquement en C# ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-19 09:42:09912parcourir

Why Does

Erreur « Impossible de modifier la valeur de retour » en C#

Lors de l'utilisation de propriétés implémentées automatiquement, une erreur « Impossible de modifier la valeur de retour » peut se produire, par exemple :

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

Origin.X = 10; // 出现 CS1612 错误</code>

Analyse des causes d'erreur

Cette erreur se produit car Point est un type valeur (structure). Lors de l'accès à l'attribut Origin, une copie de la valeur contenue dans la classe est renvoyée, pas la valeur elle-même. La modification des propriétés d'une copie n'affecte pas la valeur d'origine.

Solution

Pour résoudre ce problème, la valeur sous-jacente doit être modifiée directement. Pour les types valeur, cela peut être réalisé en stockant une copie dans une variable temporaire et en définissant une propriété sur cette variable :

<code class="language-csharp">Point originCopy = Origin;
originCopy.X = 10;
Origin = originCopy;</code>

Vous pouvez également créer votre propre champ de sauvegarde pour stocker le type de valeur et modifier directement le champ :

<code class="language-csharp">private Point _origin;
public Point Origin
{
    get { return _origin; }
    set { _origin = value; }
}</code>

De cette façon, vous pouvez modifier directement l'attribut Origin :

<code class="language-csharp">Origin.X = 10; // 此行现在可以正常工作,不会报错</code>

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