浅拷贝:是指将对象中的所有字段逐字复杂到一个新对象 ,重要的是区分引用对象的类型,如果是值类型,改变目标对象中值类型字段的值不会反映到原始对象中;如果是引用类型,改变目标对象中引用类型字段的值它将反映到原始对象中,因为拷贝的只是指向原始数据的一个地址。
深拷贝:深拷贝与浅拷贝不同的是对于引用字段的处理,深拷贝不是只复制一个地址,而是直接建立一个与原始数据相同的副本,无论是值类型还是引用类型,执行深拷贝后副本中的数据改变都不影响原始数据。
浅复制: 实现浅复制需要使用Object类的MemberwiseClone方法用于创建一个浅表副本
深复制: 须实现 ICloneable接口中的Clone方法,且需要需要克隆的对象加上[Serializable]特性
|