【发布时间】:2011-08-16 04:23:14
【问题描述】:
我有一个带有属性的类,其中一些是引用类型(其他类的实例)本身 (CookieContainer)。
我想要这个类的精确副本,这样对以前版本的任何更改都不会影响这个新实例。
这类问题有通用解决方案还是我应该手动解决?
【问题讨论】:
标签: c# immutability reference-type
我有一个带有属性的类,其中一些是引用类型(其他类的实例)本身 (CookieContainer)。
我想要这个类的精确副本,这样对以前版本的任何更改都不会影响这个新实例。
这类问题有通用解决方案还是我应该手动解决?
【问题讨论】:
标签: c# immutability reference-type
您需要将对象深度复制到另一个对象。有很多方法可以做到这一点,但是序列化一个对象并将该数据反序列化到另一个对象是实现这一目标的一个非常快速的技巧。在这里查看:How do you do a deep copy of an object in .NET (C# specifically)?
【讨论】:
决定你想要复制的深度并实现 ICloneable 接口和 Clone 方法:http://msdn.microsoft.com/en-us/library/system.icloneable.aspx
【讨论】: