自動実装された X
プロパティ (Origin
の型は Origin
) の Point
プロパティを直接変更しようとすると、「戻り値を変更できません」エラーが発生します。 これは、Point
が値型 (構造体) であるため、参照ではなく値によって渡されるためです。
Origin
プロパティにアクセスすると、元の構造体ではなく、 構造体の コピーPoint
を操作することになります。 このコピーへの変更は破棄されます。
解決策は、コピーを変更しないようにすることです。 代わりに、基になる Point
値に直接アクセスして変更する必要があります。 これは、バッキング フィールドを明示的に宣言することで実現できます:
<code class="language-csharp">private Point _origin; public Point Origin { get { return _origin; } set { _origin = value; } }</code>
X
プロパティへの変更は、Point
に保存されている元の _origin
に影響します。 このアプローチは単純なケースではうまく機能しますが、より複雑なシナリオではカスタム プロパティ処理ロジックが必要になる場合があることに注意してください。
以上がC# 自動実装プロパティの戻り値を変更できない理由と修正方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。