浅表复制和深层复制

First Post:

Last Update:

浅表复制和深层复制

设计模式的补充内容

关于浅表复制和深层复制

string类型是一种拥有值类型特点的特殊引用类型,MemberwiseClone方法是这样进行的:如果字段是值类型的,则对该字段执行逐位复制,如果字段是引用类型,则复制引用但不复制引用的对象:因此原始对象及其副本引用同一对象。

为什么不能同步复制过来呢?

这就是复制引用和复制数值的区别。

复制了引用,新对象指向的仍然是同一个堆。

“浅复制”,被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象。

“深复制”,深复制把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象。