温馨提示:本文翻译自stackoverflow.com,查看原文请点击:c# - Assigning to reference variable

c# - 分配给参考变量

发布于 2020-03-27 11:45:57

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

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

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

查看更多

查看更多

提问者
mins
被浏览
13
2019-07-03 23:22

不,他们不一样;如果使用更多的值,则更清楚;a只是一个初始化的假人-重要的一点是用法c用法如何d不同;b = ref c;我们更新参考b点到c,所以如果我们看一下c算账:它是不同的; 随着b = d;我们更新指向的事物b价值,所以它的行为截然不同- b仍然指向变量的位置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 = &a
  • b = a*b = a