为了账号安全,请及时绑定邮箱和手机立即绑定

使用 C# 赋值会创建对象的新副本还是使其成为别名?

使用 C# 赋值会创建对象的新副本还是使其成为别名?

C#
POPMUISE 2021-08-22 15:19:51
我有一个对象ClassA叫obj.之间有什么区别ClassA obj2 = obj;对比ClassA obj2 = new ClassA(obj);我的理解是否正确,第一个为 制作别名,obj而第二个制作了 的实际副本obj?
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

您的第一个示例 ClassA obj2 = obj,本质上将一个新对象 obj2 设置为现有对象,希望是 ClassA 类型,这样,如果 obj 已经定义,则 obj2 在引用中与它相等,但在值中不相等。

第二个例子是实例化的例子,将使用带1个参数的初始化器或重载方法,如果有多个重载方法,则传入obj作为重载方法的参数(意味着ClassA需要有一个重载方法)接受类型 obj 的对象作为参数)。


查看完整回答
反对 回复 2021-08-22
  • 3 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信