一个关于深度复制和浅度复制的例子

来源:互联网 发布:贵州大数据局局长 编辑:程序博客网 时间:2024/05/22 00:34

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();  
 

原创粉丝点击