深度复制问题?

dupoutVIP 2008-03-18 05:42:46
请问各位,在c#中,什么是深度复制和浅度复制?它们有什么作用和区别?
谢谢!!
...全文
93 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
stg609 2008-03-26
  • 打赏
  • 举报
回复
请问错在哪里?
dupoutVIP 2008-03-26
  • 打赏
  • 举报
回复
是哦同学打的 不好意思!!
下次注意!!
dupoutVIP 2008-03-26
  • 打赏
  • 举报
回复
不小心打错咯!!
dancingbit 2008-03-24
  • 打赏
  • 举报
回复
楼上的错误解释竟然还多拿分...
stg609 2008-03-18
  • 打赏
  • 举报
回复
平时我们复制一些int,string这些值类型数据时就是浅复制。
如果我们要复制的变量是一个引用,或者说是包含引用这些数据,那么这时候浅复制就会出问题。
如:
class A
{
....
}

A a1=new A();
A a2;
a2 = a1;
这时就是浅复制,a2只是指向a1.而不拥有自己的变量空间。
这时我们便要深复制,使得a2实际拥有其在内存中的空间。
crazyhardy 2008-03-18
  • 打赏
  • 举报
回复
浅复制是复制一个引用地址[引用]
深复制是复制一个复本[值]
它们就是是引用与值的关系.
dancingbit 2008-03-18
  • 打赏
  • 举报
回复
一个对象A,内部有某变量用于持有其他对象B的引用
如果在复制时,只复制A,那么复制之后得到的对象内部的引用同样指向B,这是浅复制
如果复制时,连引用的对象一起复制,复制之后所得到的对象内部的引用将指向B的一个副本,这是深复制

一般情况下,如无必要,浅复制使用的场合比较多,毕竟深复制的代价太高。
marey_marey111 2008-03-18
  • 打赏
  • 举报
回复
没有接触过。。帮顶一个。。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧