close
今天在專案(C#)中發現一個問題,問題說明如下:
當專案的Model需要進行複製且針對該複製出來的東西,我們需要做一些計算,再丟給其他Method運算的時候,
常常會使用這樣的語法
T ModelA = new T();
ModelA=org_Model;
此動作會將原先Model中的所有資烙,丟給ModelA 做為參考,對於使用Linq進行篩選時,是相當好用的
但是如果我們今天要做一些運算,將某些值改掉,例如
ModelA.Name="Light";
則會造成refernece 的 org_Model中的Name也會一併被改成Light (原先可能是其他的值,如:Tommy之類的)
針對這樣的情況,有以下幾種方式可以解(可能還有更多方式,只是筆者功力尚淺,請不吝請教 謝謝)
1.完整將org_Model的值搬運到ModelA中
但是此方法太累,當今天Model的值越多,每複製一次就要重做一次,是相當浪費時間的
2.採用Deep Clone(深層複製)的方式
此方式只需要將Model丟入即可,幾行程式即可結束
對於複製一整包大Model,特別是大Model中還有很多小Model的情況 此方式是最佳解法
筆者參考了 CHRIS CHEN 大大的網誌
相關網址如下:https://dotblogs.com.tw/wasichris/2015/12/03/152540
有興趣的可以參考 CHRIS CHEN 大大的資訊
文章標籤
全站熱搜
留言列表