C#中对象的使用是面向对象设计的重要知识点,那怎么复制对象呢?让我们一起来学习一下
工具/原料
电脑
Vs2010
方法/步骤
1、对象的复制不是实例化一个对象后,如"personp=newperson();personp2=p1",这不是对象复制,p1,p2都是指向同一个实例,而对象复制包含两种,分为浅复制和深复制。
2、浅复制通过Object类里的MemberwiseClone方法实现的,通过类氇筐塘瓠里的复制方法,复制一个对象P3,P3和P1的属性时一致的,P3的name属性重糕恍阏绯新赋值,那和P1的name值便会不一样,但是ID没有重新赋值,那P3和P1的ID都一样,共享同一个值
3、以下图片是运行结果,复制时,原始对象和复制对象是可以共用类里的属性的,因此都可以直接用点号引用到类里的属性,如果更改
4、很多情况下浅复制会带来问题,因此就有了深复制,它和璐围诂在浅复制的区别在于原始对象和复制对象对引用成员的处理不一样,也通过Object类里的MemberwiseClone方法实现的芟坳葩津,但需要在复制对象中创建新的字段,这样就不会跟浅复制一样,其中哪个属性更改了,另一个对象的属性也跟着改变,而是相互独立的,以下是代码和运行结果