u3d吧 关注:4,713贴子:7,947
  • 1回复贴,共1

【u3d】深拷贝

只看楼主收藏回复

Employee的深拷贝有多种实现方法,最简单的方法是手动对字段逐个进行赋值。但这种方法容易出错,也就是说,如果类型的字段发生变化或有增减,那么该拷贝方法也要发生相应的变化,所以,建议使用序列化的形式来进行深拷贝。Employee深拷贝的一个简单实现代码如下所示:


IP属地:上海1楼2023-08-08 09:47回复
    class Employee ICloneable
    {
    public string IDCode {get;set;}
    public int Age {get;set;}
    public DepartmentDepartment {get;set;}
    #region ICloneable成员
    public object Clone()
    {
    using (Stream objectstream new Memorystream())
    {
    IFormatter formatter new BinaryFormatter();
    formatter.Serialize(objectstream,this);
    objectstream.Seek(0,Seekorigin.Begin);
    return formatter.Deserialize(objectstream)as Employee; #endregion
    }
    }
    #endregion
    }


    IP属地:上海2楼2023-08-08 09:52
    回复