各位大哥,阴影复制和深度复制的区别是不是这样:阴影复制是只将一个对象中的引用类型的成员复制给另一个对象。而深度复制去是只将一个对象中的值类型成员复制给另一个对象

解决方案 »

  1.   

    应该是 shallow copy (浅复制)和 deep copy (深复制)吧?shallow copy (Memberwise Clone)就是将对象的所有实例变量(instance variables)的值直接复制到另一个同类对象,这里的“值”,对于值类型来说就是具体的数值,对于引用类型来说就是对象的内存地址,也就是 shallow copy 之后,引用类型的变量引用的对象跟原对象引用的对象是同一个东西deep copy 就是对引用类型的实例变量重复这个过程,直到完全分离为止。复制后,原对象与复制品没有任何交集
      

  2.   

    没有例子可以举,因为它不是个到处可用的东西有兴趣可以去看看 Object.MemberwiseClone() 保护方法。里面也有个例子,不过那个例子很难读懂就是。
    http://msdn.microsoft.com/library/CHS/cpref/html/frlrfSystemObjectClassMemberwiseCloneTopic.asp如果将那个例子用图形表示出来,就是这样:X -> A -> M
      -> B浅表复制后:X' -> A -> M
       -> B(其中 X' 是 X 的副本,但是A/B/M都没变,也就是说只有顶级对象复制了)深层复制后:Y -> C -> N
      -> D(其中 Y 是 X 的副本,C 是 A 的,D 是 B 的,N 是 M 的副本,也就是所有关联对象都复制了)