c#中大家是怎么做深拷贝的?一定要自己手动写代码吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中大家是怎么做深拷贝的?一定要自己手动写代码吗?相关的知识,希望对你有一定的参考价值。
PmcMapRule DeepCopy()
PmcMapRule pmcMapRule = new PmcMapRule();
mapRule mapRuleNew = new mapRule();
PropertyInfo[] pis = typeof(mapRule).GetProperties();
foreach (PropertyInfo pi in pis)
pi.SetValue(mapRuleNew, pi.GetValue(MapRule, null), null);
pmcMapRule.MapRule = mapRuleNew;
return pmcMapRule;
当中是自动用反射来处理的。但是我发现这样也存在一个问题:如果是基本类型的对象,直接赋值没有问题,但是如果是引用类型的对象,这样实际上还是没有做到完全的深拷贝——这样一来,具体类型的深拷贝就一定要自己来手写代码了吗?不知道大家在遇到需要做深拷贝的时候是如何处理的。求指点。
应用类型的拷贝与实现ICloneable接口没有关系,你完全可以自己写一个叫Clone的方法,但是实现ICloneable接口是有意义的。
深拷贝会把对象内部的引用类型的对象也克隆一份,浅拷贝不会
比如你克隆一辆汽车,浅拷贝的话两量汽车会共享4个轮子,深拷贝的话就会各自拥有独立的轮子本回答被提问者采纳
c# winform中怎么使用richtextbox?在工具栏中将它拖到指定地点之后要怎么做?是要写代码吗?具体的代码是
什么?我在搞课程设计,但是本身上课也没学到什么,不会,老师一定要我们添加一个作用类似于富文本编辑器的东西,很急啊!或者有没有其他的控件?教教我怎么使用啊!我QQ:158616937
看你要完成什么功能阿?如果要实现类似富文本编辑器的话,你应该先有菜单,然后通过菜单打开各种对话框,再由对话框来对所选文字进行格式设置或者其他操作。如果是复制、剪切等功能就不用对话框了,很简单。只能用这个控件,没有其他的,
我加你的qq吧 参考技术A 看msdn介绍,身手党啊追问
还好吧,我也不是直接上来就问大家要一整个系统吧,如果我伸手党的话早就提问了,也不会研究到晚上快一点没办法了才提问
追答具体的我也没细研究,没搞那个方向,不过应该不难
以上是关于c#中大家是怎么做深拷贝的?一定要自己手动写代码吗?的主要内容,如果未能解决你的问题,请参考以下文章
小红帽linux中sshd_config里面啥都没有 要自己手动写上去吗
C# ASP.NET怎么手动给GridView赋值,不从数据库中读取?