A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

C#中的深复制和浅复制是谁能帮我解释一下?

4 个回复

倒序浏览
浅复制:是指将对象中的所有字段逐字复杂到一个新对象
        对值类型字段只是简单的拷贝一个副本到目标对象,改变目标对象中值类型字段的值不会反映到原始对象中,因为拷贝的是副本
        对引用型字段则是指拷贝他的一个引用到目标对象。改变目标对象中引用类型字段的值它将反映到原始对象中,因为拷贝的是指向堆是上的一个地址

深复制:深复制和浅复制不同的是对于引用字段的处理,深拷贝将会在新对象中创建一个新的对象和
        原始对象中对应字段相同(内容相同)的字段,也就是说这个引用和原始对象的引用是不同, 我们改变新
        对象中这个字段的时候是不会影响到原始对象中对应字段的内容。

浅复制: 实现浅复制需要使用Object类的MemberwiseClone方法用于创建一个浅表副本
深复制: 须实现 ICloneable接口中的Clone方法,且需要需要克隆的对象加上[Serializable]特性

回复 使用道具 举报
简单说一下:
一般来说浅复制,只是复制了该对象的一个引用,也就是两个引用同时指向了一个对象,它们互相影响。
深复制,是又创建了和原对象属性值一模一样的对象,而不是复制原对象的引用,两个对象互不影响。
回复 使用道具 举报
顶起来,受教了,支持支持























优加孕妇防辐射服好吗
回复 使用道具 举报
一个是行货

一个是山寨货
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马