c# 对象克隆

来源:互联网 发布:混响软件 编辑:程序博客网 时间:2024/05/17 04:53


调用this.MemberwiseClone() 就可以创建一个对象的浅副本, 断开对象引用的最快办法.


后来发现这样做有一个问题... 比如下面这个类 : 

public class A{    public Buff b;    public int i = 0;    public A GetCopy()    {        return this.MemberwiseClone() as A;    }}

我创建A类的一个实例,复制出一个a1, 然后修改一下a中的b 

        A a = new A();                   A a1 = a.GetCopy();            a.b = "修改一下";        
之后发现 a1 中的 b也被修改了... 因为b本身也是一个引用类型, 看来MemberwiseClone() 这种复制方式并不怎么好用, 虽然断开了A的引用, 但却无法断开A内部的引用类型的引用.


0 0
原创粉丝点击