通用深复制放

一、需求来源

常常因为一个对象给多个对象赋值时,多个对象所得到的值都是取最后一次的值,使得最后多个对象的值相同,

为了避免这种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);

    }
}

  

posted @ 2019-09-06 17:41  昵称已存在嘿  阅读(130)  评论(0编辑  收藏  举报