对象复制
对象的“复制”,指的是把一个现有的对象“克隆”一份,得到一个新对象,这个新对象和老对象一模一样,但新、老对象是完全独立的
对象的“浅复制”
class MyClass
{
public int MyClassValue = 100;
}
public static MyClass CloneObject(MyClass obj)
{
MyClass newobj = new MyClass();
newobj.MyClassValue = obj.MyClassValue;
return newobj;
}
- 使用简单的字段复制方式复制一个对象,称为对象的“浅复制”方式
考虑复合对象的情况
- 浅复制来的复合对象是原复合对象
- 浅复制方式,无法复制出真正独立的新对象。新老对象共享一个内部对象
对象的“深复制”方式
- “深复制”在复制对象时,会把其所包容的内部对象也复制一份,并且这个过程是“递归”进行的。
- .NET基类库中定义了一个ICloneable接口,所有需要实现深复制的对象,应该实现这个接口