浅复制
//实现ICloneable接口
[Serializable]
public class EntityInfo : ICloneable
{
//...其他方法省略
/// <summary>
/// 返回一个浅表副本
/// </summary>
/// <returns></returns>
public virtual Object Clone()
{
return this.MemberwiseClone();//调用object的克隆方法
}
}
深复制
[Serializable]
public class EntityInfo:ICloneable
{
//...其他方法省略
//使用序列化实现深复制
public virtual Object Clone()
{
MemoryStream stream = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, this);
stream.Position = 0;
return formatter.Deserialize(stream);
}
}