我想要一个真正的深复制。在Java中,这很容易,但是如何在C#中实现呢?
我已经看到了几种不同的方法,但是我使用了一种通用的实用方法:
public static T DeepClone<T>(this T obj) { using (var ms = new MemoryStream()) { var formatter = new BinaryFormatter(); formatter.Serialize(ms, obj); ms.Position = 0; return (T) formatter.Deserialize(ms); } }
笔记:
[Serializable]
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;