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
Libérer: 2025-01-19 09:42:09
original
990 Les gens l'ont consulté

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 :

public Point Origin { get; set; }

Origin.X = 10; // 出现 CS1612 错误
Copier après la connexion

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 :

Point originCopy = Origin;
originCopy.X = 10;
Origin = originCopy;
Copier après la connexion

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

private Point _origin;
public Point Origin
{
    get { return _origin; }
    set { _origin = value; }
}
Copier après la connexion

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

Origin.X = 10; // 此行现在可以正常工作,不会报错
Copier après la connexion

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