2023-06-16 11:37阅读: 12评论: 0推荐: 0

深拷贝和浅拷贝

深拷贝和浅拷贝

  • 浅拷贝
    • 指拷贝原始对象中所有的非静态值类型和所有引用类型成员的引用(拷贝后的对象共享所有引用类型成员的实际对象
    • 类型基类System.Object已经为所有类型实现了浅拷贝,类型所要做的就是公开一个复制的接口,这个接口一般借由实现ICloneable接口来实现,ICloneable只包含了一个Clone方法,该方法即可以被实现为浅复制也可以被实现深拷贝
      img
    • 实现方式:
      1. 实现ICloneable接口来实现对象浅拷贝(MemberwiseClone)
        img
  • 深拷贝
    • 指拷贝一个对象时,当存在值类型时将对象里面的值类型拷贝,当存在引用类型时,不仅仅将对象的引用进行拷贝,还将该对象引用的值也一起拷贝(拷贝后的对象跟源对象完全互相独立
      img
    • 实现方式
      1. 自己手动new对象
        img
      2. 反射
        img
      3. 序列化和反序列化
        img
  • 效果:
    img
  • 注意:
    • 一般可被继承的类型应该避免实现ICloneable接口, 因为这样将强制所有的子类型都需要实现ICloneable接口,否则将使类型的拷贝不能覆盖子类的新成员
  • 链接:
    https://www.cnblogs.com/dotnet261010/p/12329220.html

本文作者:乐天--

本文链接:https://www.cnblogs.com/blackamon/p/17485188.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   乐天--  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起