广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    c#中对象的复制

    来源:网络收集  点击:  时间:2024-04-12
    【导读】:
    C#中对象的使用是面向对象设计的重要知识点,那怎么复制对象呢?让我们一起来学习一下工具/原料more电脑Vs2010方法/步骤1/4分步阅读

    对象的复制不是实例化一个对象后,如 person p=new person(); person p2=p1,这不是对象复制,p1,p2都是指向同一个实例,而对象复制包含两种,分为浅复制和深复制。

    2/4

    浅复制通过Object类里的MemberwiseClone方法实现的,通过类里的复制方法,复制一个对象P3,P3和P1的属性时一致的,P3的name属性重新赋值,那和P1的name值便会不一样,但是ID没有重新赋值,那P3和P1的ID都一样,共享同一个值

    3/4

    以下图片是运行结果,复制时,原始对象和复制对象是可以共用类里的属性的,因此都可以直接用点号 引用到类里的属性,如果更改

    4/4

    很多情况下浅复制会带来问题,因此就有了深复制,它和浅复制的区别在于原始对象和复制对象对引用成员的处理不一样,也通过Object类里的MemberwiseClone方法实现的,但需要在复制对象中创建新的字段,这样就不会跟浅复制一样,其中哪个属性更改了,另一个对象的属性也跟着改变,而是相互独立的,以下是代码和运行结果

    注意事项

    可以通过Object.RefernceEquals(对象,对象)来看他们是否指向同一实例

    希望对大家有所帮助,谢谢你们的观看

    编程
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_492213.html

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号06-13 08:58:12  耗时:0.019