嘗試直接修改自動實現的 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中文網其他相關文章!