public class ClassA:ICloneable
{
public int Value = 0;
public object Clone()
{
return this.MemberwiseClone();
}
}
public class ClassB:ICloneable
{
public ClassA Member= new ClassA();
public object Clone()
{
//浅复制
//return this.MemberwiseClone();
//深复制
//ClassB obj= new ClassB();
//obj.Member= (ClassA)Member.Clone();
//return obj;
}
}
分别注释掉深复制与浅复制后测试如下代码看效果:
ClassB sb = new ClassB();
sb.Member.Value = 15;
ClassB nb = (ClassB)sb.Clone();
sb.Member.Value = 6;
this.Text = nb.Member.Value.ToString();
一个关于深度复制和浅度复制的例子
最新推荐文章于 2024-04-25 13:05:15 发布