架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10930|回复: 0

[资料] c# 对象的Clone 浅复制

[复制链接]
发表于 2016-7-1 10:52:47 | 显示全部楼层 |阅读模式


Clone 分浅拷贝和深拷贝

两者的区别:当有引用类型成员时,浅拷贝复制的是成员的引用,深拷贝复制的是成员对象。

如何实现对象的拷贝功能:

== 继承接口ICloneable实现Clone方法

== ICloneable.Clone本身并不能区分(Deep or Shallow)你可以在Clone中调用MemberwiseClone来实现一个ShallowClone也可以自己来实现一个DeepClone。不过按照microsoft的建议当实现ICloneable的时候是准备用来实现一个DeepClone。
== ICloneable.Clone返回类型是object
== 其中MemberwiseClone的复制原理是值类型按位复制,引用类型复制对象的引用。这里有一个要注意的就是String类型,虽然是引用类型,不过在这里表现上和值类型是一样的,在Clone的时候就当作值类型来看待好了。

QQ截图20160701105026.jpg







上一篇:a different object with the same identifier value was already associated with...
下一篇:mvc 获取post的json xml数据
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-25 15:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表