永发信息网

C#里.什么是浅度复制和深度复制?

答案:2  悬赏:0  手机版
解决时间 2021-01-15 23:37
C#里.什么是浅度复制和深度复制?
最佳答案
有的时候,创建一个对象可能会非常耗时,比如对象需要从远程数据库中获取数据来填充,又或者创建对象需要读取硬盘文件。此时,如果已经有了一个对象,再创建新对象时,可能会采用复制现有对象的方法,而不是重新建一个新的对象。
浅度复制 和 深度复制 是以如何复制对象的成员(member)来划分的。一个对象的成员有可能是值类型,有可能是引用类型。当我们对对象进行一个浅度复制的时候,对于值类型成员,会复制其本身(值类型变量本身包含了所有数据,复制时进行按位拷贝);对于引用类型成员(注意它会引用另一个对象),仅仅复制引用,而不创建其引用的对象。结果就是:新对象的引用成员和 复制对象的引用成员 指向了同一个对象。

深度复制就是将引用成员指向的对象也进行复制。实际的过程是创建新的引用成员指向的对象,然后复制对象包含的数据。深度复制可能会变得非常复杂,因为引用成员指向的对象可能包含另一个引用类型成员,最简单的例子就是一个线性链表。如果一个对象的成员包含了对于线性链表结构的一个引用,浅度复制 只复制了对头结点的引用,深度复制 则会复制链表本身,并复制每个结点上的数据。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
法拉米尔的禁忌魔典 是使用就开始计算伤害吗
农村盖二层楼房后面有邻居应该留出多少米距离
去年挂科结业离校,今年已经修够学分拿到毕业
100元是错版吗
早餐最佳搭配是什么?
象竹笋一样的红色植物是什么
请你正确运用管理心理学的有关理论原理,分析
平安银行信用卡一般卡额度是多少
女人必须在夜里十二点之前回家吗?
深秋似冬寒求下联
安踏衣服logo变成这样了怎么办
经典老歌怎么下载到手机上
四川红糖耢糟的正宗做法
香港人与内地人结婚所需手续
康佳智能电视kktv K32C怎么安装第三方软件
推荐资讯
下列各句中加点字注音无误的一项是 [
高伟光和迪丽热巴合作过的电视剧,高伟光和迪
近焦投影和远焦投影仪哪个价格高
我国的航母正按计划进行各项科研试验和训练。
如何才能让一个人变得不在内向.
我要看8o年代的印度电影
机械师笔记本是哪家公司生产的?
中国纹绣大赛理论考试题
老哥 求你了
顶板标高如何表示
swipe.js如何动态添加滑动元素?
你从郑人买履刻舟求剑中得到什么启示
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?