Maison >développement back-end >C++ >Pourquoi C# génère-t-il une erreur « Impossible de modifier la valeur de retour » lors de la modification des propriétés implémentées automatiquement ?
Explication détaillée de l'erreur "Impossible de modifier la valeur de retour" en C#
Les propriétés implémentées automatiquement en C# offrent un moyen pratique de définir des propriétés, mais parfois, lorsque vous essayez de modifier la valeur de la propriété, cela peut entraîner une erreur « Impossible de modifier la valeur de retour ».
Veuillez consulter le code suivant :
<code class="language-csharp">public Point Origin { get; set; } Origin.X = 10; // 产生 CS1612 错误</code>
Ce code tente de définir la coordonnée X de la propriété Origin. Cependant, il signalera une erreur indiquant que la valeur de retour de la propriété ne peut pas être modifiée car ce n'est pas une variable.
Cause première : types de valeur et types de référence
Cette erreur se produit car Point est un type valeur (structure). Les types valeur sont copiés par valeur, ce qui signifie que lorsque vous attribuez un type valeur à une variable, une nouvelle copie est créée. Dans ce cas, lorsque vous accédez à la propriété Origin, vous accédez en réalité à une copie de la valeur Point, et non à la valeur d'origine stockée dans la classe.
Solution
Pour résoudre ce problème, vous avez deux options :
<code class="language-csharp">Point temp = Origin; temp.X = 10; Origin = temp;</code>
En stockant la valeur de la propriété dans la variable temp, vous créez une copie modifiable du type de valeur. Vous pouvez ensuite définir les propriétés de la copie modifié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!