解决方案 »

  1.   

    首先你确定你这坨代码能编译成功?类跟方法你能分的清楚吗?其次,所谓深度复制,浅度复制其实说白了很简单:object的memberwiseclone方法可以直接复制出对象的基元类型,自定义类型的复制通过实现icloneable接口自己new出来。
      

  2.   

    抱歉贴错代码了,这段看错了是这段public class Conten
    {
     public int Val;
    }
    public class Cloner:ICloneable
    {
       public Content MyConten = new Content();
       
       public object Clone()
    {
      Cloner clonedCloner = new Cloner();
      clonedCloner.MyContent = MyContent.Clone();
      return clonedCloner;
      } 
    }这里提到调Clone()是一个递归过程, MyContent字段也进行深度复制,Conten类并没有实现Icloneable接口,这里却调用了Clone()方法,假设可以调用。搞不清楚这个函数哪里实现递归了,还是说调用的其实是Cloner类的Clone()方法?那递归何时结束?
      

  3.   

    代码没有贴全,Card是另一个类,第一段贴错了,是public object Clone(),实在抱歉,我只是看不懂递归的地方(其实是我看错了,这里并不是递归),我试试看更正一下
      

  4.   

    MyContent.Clone();
    是调用MyContent这个对象的Clone方法,实际上就是Content 类里的方法
    而你这个Clone方法是定义在Cloner这个类里的,根本不是同一个方法,所以根本就不是递归