黑马程序员技术交流社区
标题:
C#中的深复制和浅复制是谁能帮我解释一下?
[打印本页]
作者:
赵洋3916
时间:
2013-6-14 12:06
标题:
C#中的深复制和浅复制是谁能帮我解释一下?
C#中的深复制和浅复制是谁能帮我解释一下?
作者:
王宝生
时间:
2013-6-14 12:20
浅复制:是指将对象中的所有字段逐字复杂到一个新对象
对值类型字段只是简单的拷贝一个副本到目标对象,改变目标对象中值类型字段的值不会反映到原始对象中,因为拷贝的是副本
对引用型字段则是指拷贝他的一个引用到目标对象。改变目标对象中引用类型字段的值它将反映到原始对象中,因为拷贝的是指向堆是上的一个地址
深复制:深复制和浅复制不同的是对于引用字段的处理,深拷贝将会在新对象中创建一个新的对象和
原始对象中对应字段相同(内容相同)的字段,也就是说这个引用和原始对象的引用是不同, 我们改变新
对象中这个字段的时候是不会影响到原始对象中对应字段的内容。
浅复制: 实现浅复制需要使用Object类的MemberwiseClone方法用于创建一个浅表副本
深复制: 须实现 ICloneable接口中的Clone方法,且需要需要克隆的对象加上[Serializable]特性
作者:
李奔
时间:
2013-6-14 12:43
简单说一下:
一般来说浅复制,只是复制了该对象的一个引用,也就是两个引用同时指向了一个对象,它们互相影响。
深复制,是又创建了和原对象属性值一模一样的对象,而不是复制原对象的引用,两个对象互不影响。
作者:
薛良玟
时间:
2013-6-14 14:34
顶起来,受教了,
支持支持
优加孕妇防辐射服好吗
作者:
关关雎鸠
时间:
2013-6-15 11:53
一个是行货
一个是山寨货
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2