我有一个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