如何在.NET中执行对象的深层复制(特别是C#)?我想要一个真正的深拷贝。在Java中,这很简单,但是你如何在C#中做到这一点?
3 回答
红颜莎娜
TA贡献1842条经验 获得超12个赞
以Kilhoffer的解决方案为基础......
使用C#3.0,您可以创建一个扩展方法,如下所示:
public static class ExtensionMethods{ // Deep clone public static T DeepClone<T>(this T a) { using (MemoryStream stream = new MemoryStream()) { BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, a); stream.Position = 0; return (T) formatter.Deserialize(stream); } }}
它扩展了使用DeepClone方法标记为[Serializable]的任何类
MyClass copy = obj.DeepClone();
- 3 回答
- 0 关注
- 1201 浏览
添加回答
举报
0/150
提交
取消