每当在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😊
- 1 回答
- 0 关注
- 239 浏览
添加回答
举报
0/150
提交
取消
