我有一個List<T>
,我做到以下幾點:C#從Array返回對象離開指針數組項
var myObj = List[2]; //Return object at position 2
myObj.Name = "fred"; //If you look at List[2] its name has changed to fred
我嘗試以下,但它仍然在名單
var newObj = new MyObj();
var myObj = List[2]; //Return object at position 2
newObj = myObj;
newObj.Name = "fred"; //If you look at List[2] its name has still changed to fred
更新項目我怎樣才能避免這個指針剩下,所以我可以更新屬性,而不用更新它在列表中?
框架設計指南建議對實現ICloneable接口。只需提供一個「克隆」方法。 – dtb 2010-01-13 09:52:37
克隆的想法是正確的,但不要實現ICloneable。有關詳細信息,請參閱http://blogs.msdn.com/brada/archive/2003/04/09/49935.aspx。 – 2010-01-13 09:53:06
是否有一種快速方法將所有屬性複製到新對象,而不是手動輸入所有屬性,以防萬一類遇到新屬性並且克隆方法忘記添加該屬性以進行復制。 – Jon 2010-01-13 09:58:48