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

关键字“this”是否返回引用或值

关键字“this”是否返回引用或值

C#
www说 2022-01-09 15:26:17
每当在thisC# 类中调用关键字时,它是返回对它出现的实例的引用,还是返回实例的值(如副本)?例如,下面的代码会打印数字 23(意味着this返回 的副本foo)还是数字 96(意味着this返回对 的引用foo)?class Program{    static void Main()    {        Foo foo = new Foo { 23 };        foo.Bar();        Console.Write(foo.FooBar);    }}class Foo{    public int FooBar { get; set; }    public void Bar()    {        Foo newFoo = this;        newFoo.FooBar = 96;    }}
查看完整描述

1 回答

?
皈依舞

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

由于this与引用类型 ( class) 相关,因此它返回对实例的引用。使用与以下代码片段中的使用this没有什么不同foo2

var foo1 = new Foo();
var foo2 = foo1;

foo2仅引用 (!) 所引用的对象相同foo1,在类内部,this仅引用实例。

如果它不同,就不可能例如从方法内部为对象的属性赋值,因为 usingthis总是会导致复制对象,这反过来意味着您永远不会设置原始实例字段的值,这将是相当糟糕的。

所以,长话短说:this持有参考,而不是价值。

HTH😊


查看完整回答
反对 回复 2022-01-09
  • 1 回答
  • 0 关注
  • 239 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号