给出关键部分代码即可,需要附上文字说明。有几种要几种,哪怕换汤不换药的也要!

解决方案 »

  1.   

    Deep copy! google 一下吧多滴很!基本上就两种,
    一是手工编码实现;
    二是通过序列化后复制,然后再反序列化实现!俺用第二种!
      

  2.   

    《深入浅出设计模式(Java/C#版)》上关于原型模式中说到深拷贝和浅拷贝的区别,讲的蛮详细的,你可以去书店看看。:)
      

  3.   

    c#入门经典里的
    public class Cloner:ICloneable
    {
       public Content MyContent = new Content();
       ...
     pubilc object Clone()
      {
       Cloner clonedCloner = new Cloner();
       clonedCloner.MyCOntent= MyCOntent.Clone();
        return clonedCloner; 
       }
    }这里调用了默认的构造函数,简化了创建了一个新的Cloner对象的语言,为了使这段代码能够正常工作,还需要在Cloner类上实现ICloneable接口
    [ComVisible(true)]
    public interface ICloneable
    {
        // Methods
        object Clone();

    是在vs05下的 2.0语法
      

  4.   

    using System;class DeepCopy : ICloneable
    {
      public int i;
      public DeepCopy()
      {
      }
      // 供Clone方法调用的私有构造函数
      private DeepCopy(int i)
      {
        this.v = (int)i.Clone();
      }
      public Object Clone()
      {
        // 构造一个新的DeepCopy对象
        return new DeepCopy(this.i);
      }
      public void Display()
      {
        Console.Write( i + ", ");
        Console.WriteLine();
      }
    }
      

  5.   

    MemoryStream memoryStream = new MemoryStream();         BinaryFormatter formatter = new BinaryFormatter(); 
            formatter.Serialize(memoryStream, this);         memoryStream.Position = 0; 
           .....................以后我也用序列化,也不麻烦。不就是内存块的复制?