問題:
嘗試使用下列指令修改結構清單中的元素時數組索引運算子(例如,MyList[1].Name = "bob"),錯誤是遇到:「無法修改'System.Collections.Generic.List.this[int]' 的回傳值,因為它不是變數。值類型語義而產生的。結構體按值複製,這表示當從結構體清單存取元素時,將建立新實例並複製值。因此,修改這個新實例不會影響清單中的原始元素。
解決方案:
考慮使用類別取代:如果需要修改清單中的元素很重要,請考慮使用類別而不是結構。類別是引用類型,這意味著它們是透過引用而不是透過值傳遞的。修改類別清單中的元素將直接影響原始實例。
公開介面:
如果需要結構體,一種解決方案是在結構。這允許透過指向裝箱物件的介面引用進行修改。
範例:
以上是如何在 C# 中修改結構列表中的元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!