分配给参考变量

时间:2019-07-03 15:01:56

标签: c# reference

使用C#7.3。 在此代码中:

int a = 0;
ref int b = ref a;
...
...
b = ref a;
b = a;
  • 最后两个分配是否完全等效(分配参考),尽管一个分配a的值,而另一个分配a的参考?如果可以,为什么?

  • 如果没有,为什么允许为ref变量赋值(最后一行)?

1 个答案:

答案 0 :(得分:2)

不,他们不一样;如果使用更多的值,则更清楚;这里的a只是要初始化的虚拟对象-重要的一点是cd的用法如何不同;使用b = ref c;,我们更新b指向c的引用,因此,如果事后查看c:则有所不同;使用b = d;,我们更新了b所指向的事物的,因此其行为截然不同-b仍指向变量{{1 }}。

c

如果我们按照指针​​进行比较,并说 int a = 0; ref int b = ref a; int c = 1, d = 2; b = ref c; b = 42; System.Console.WriteLine(c); // 42 System.Console.WriteLine(d); // 2 b = d; b = 64; System.Console.WriteLine(c); // 64 System.Console.WriteLine(d); // 2 b指针:

  • int*b = ref a;
  • b = &ab = a