一、需求来源
常常因为一个对象给多个对象赋值时,多个对象所得到的值都是取最后一次的值,使得最后多个对象的值相同,
为了避免这种bug,采用深浅复制来解决。
二、解决方案
/// <summary>
/// 通用的深复制方法
/// </summary>
/// <typeparam name="T"></typeparam>
[Serializable]
public static class BaseClone<T>
{
public static T Clone(T t)
{
MemoryStream memoryStream = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(memoryStream, t);
memoryStream.Position = 0;
return (T)formatter.Deserialize(memoryStream);
}
}