社区
C#
帖子详情
浅拷贝和对象引用的关系
jefflovejava
2008-12-12 09:49:28
谁知道浅拷贝和传递一个对象引用有什么不同?
...全文
121
9
打赏
收藏
浅拷贝和对象引用的关系
谁知道浅拷贝和传递一个对象引用有什么不同?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
quincystar
2008-12-12
打赏
举报
回复
学习了
愚痴鱼
2008-12-12
打赏
举报
回复
[Quote=引用 4 楼 jefflovejava 的回复:]
也就是说
SomeObject obj1 = new SomeObject(...);
SomeObject obj2;
obj2 = obj1.MemberwiseClone();
obj2 = obj1();
上面两个方式在编译处理的时候是一样的么??
[/Quote]
首先,你这个语法是不通过的,obj2 = obj1.MemberwiseClone(); 这句会出错;
MemberwiseClone是受保护方法,不能这样直接用;
浅拷贝就是拷贝了引用;
当你定义的类型里全是值类型时,这样做就是很方便的复制;如果你定义的类型里有引用类型,但是你后面的处理会忽视掉
这些引用类型不对它们进行处理,你也可以用浅拷贝,否则就要小心使用,避免一改全改;
jummy_lin
2008-12-12
打赏
举报
回复
浅拷贝本来就没有什么意义,并且危害很大。如果程序中因为浅拷贝造成逻辑错误,这种错误是很难跟踪的。所以使用引用类型的时候一定要慎重。
jefflovejava
2008-12-12
打赏
举报
回复
如果一样的话,浅拷贝的意义在于什么,比如有什么特殊的应用么?
jefflovejava
2008-12-12
打赏
举报
回复
笔误
obj2 = obj1;
jefflovejava
2008-12-12
打赏
举报
回复
也就是说
SomeObject obj1 = new SomeObject(...);
SomeObject obj2;
obj2 = obj1.MemberwiseClone();
obj2 = obj1();
上面两个方式在编译处理的时候是一样的么??
Fibona
2008-12-12
打赏
举报
回复
传递引用指针跟浅拷贝一样,如果你在方法中改变了对值的值,原来对像的值也会发生变化
cheng_er
2008-12-12
打赏
举报
回复
楼上说的是深浅拷贝的区别吧
wuyq11
2008-12-12
打赏
举报
回复
一值类型变量,一种引用类型变量。对于前者,copy是属于全盘复制;而对于后者,一般的copy只是浅copy,相当于只传递一个引用指针一样。
浅拷贝:只复制对象的基本类型,对象类型,仍属于原来的引用.
深拷贝:不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.
浅拷贝和深拷贝区别:浅拷贝是指将对象中的数值类型的字段拷贝到新的对象中,而对象中的引用型字段则指复制它的一个引用到目标对象。如果改变目标对象中引用型字段的值他将反映在原是对象中,也就是说原始对象中对应的字段也会发生变化。
区块链之Go语言设计模式
某些情况下,客户不想或者不能够直接
引用
一个
对象
,代理
对象
可以在客户和目标
对象
直接起到中介的作用。客户端分辨不出代理主题
对象
与真实主题
对象
。代理模式可以并不知道真正的被代理
对象
,而仅仅持有一个被代理
对象
...
对象
的
浅拷贝
和深拷贝
浅拷贝
:是指拷贝
对象
时仅仅拷贝
对象
本身(包括
对象
中的基本变量),而不拷贝
对象
包含的
引用
指向的
对象
。 深拷贝:不仅拷贝
对象
本身,而且拷贝
对象
包含的
引用
指向的所有
对象
。 二、区别:
浅拷贝
:仅仅是指针给了另一...
java
引用
拷贝,
对象
浅拷贝
,
对象
深拷贝
引用
拷贝:和
对象
拷贝的不同之处在于,
引用
拷贝只会生成一个新的
对象
引用
地址,但两个地址其最终指向的还是同一个
对象
;
对象
拷贝:这种方式会重新生成一个新的
对象
,生成的新
对象
与原来的
对象
没有任何关联。 1、...
C#中的深拷贝和
浅拷贝
深拷贝:一个
对象
深拷贝的时候,无论是
引用
类型
对象
还是值...仅仅复制
对象
引用
总结来说深拷贝和
浅拷贝
对于
引用
类型的处理不同,
引用
类型在
浅拷贝
时,拷贝的是
对象
的
引用
,
引用
类型在深拷贝时,拷贝的是完整的一份
对象
。
vue~
对象
的
浅拷贝
这些方法都可以用来创建
对象
的
浅拷贝
,但请注意,如果
对象
中包含嵌套
对象
,这些嵌套
对象
仍然是
引用
关系
,所以修改嵌套
对象
会影响到原始
对象
。这是一种
浅拷贝
,因为它只复制了
对象
的第一层属性,如果
对象
中包含了嵌套...
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章