在structs 的值的值是一個常見的任務是一個常見的任務。在處理結構列表時,嘗試更改單個元素的價值時可能會出現特定問題。本文探討了此問題背後的根本原因,並提供了潛在的解決方案。
在使用諸如structs之類的值類型時,每個值類型變量或參考代表結構的獨特實例。將一個從列表元素分配到新變量的值,例如struct obitem = myList [1];,創建一個具有復製成員的新實例。對obitem進行的任何修改都不會影響myList中的原始元素。 此行為源於價值類型的語義。當將值類型分配給新變量或將其作為參數傳遞時,會創建一個新實例並複制值。這與參考類型(例如類)形成鮮明對比的是,對參考的修改將影響原始對象。 解決結構列表中修改單個元素的問題,一種方法是定義構造構造並使用該接口訪問結構的接口。這允許通過接口參考修改實際結構,該界面引用指向盒裝對象。
; temp.name =“ gishu”; foreach(mystruct s in dobist)//“ abc”,“ def” { Console.Writeline(s.Name); } iMistsuctModifier temp2 = obsist [1]作為immesstructModifier; temp2.name =“現在gishu”; foreach(mystruct s in dobist)//“ ABC”,“現在gishu” { Console.Writeline(s.Name); }考慮使用structs vets classe classs存儲在集合中的權衡很重要。結構可提供性能優勢,並在需要不變性或少量記憶足跡時優先。但是,如果列表中的修改元素是必需的,則類可能是一個更合適的選項。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3