从ref变量解构元组

时间:2019-05-08 13:23:58

标签: c# .net valuetuple

我有办法。

private ref (int, int) GetValue()
{
  var array = new (int, int)[1];
  return ref array[0];
}

以下代码可以正常工作:

var (s1, s2) = GetValue();

但是我需要使用ref功能。以下代码也适用:

ref var r = ref GetValue();

现在,我想解构元组。以下代码无法编译:

ref var (r1, r2) = ref GetValue();

是否可以解构ref变量?

1 个答案:

答案 0 :(得分:2)

我还没有使用过ref值元组,但是据我理解,不是元组的内容是ref,而是元组本身。因此,您需要指定一个标识符,例如在方法上使用ref自变量。

解构元组值将意味着调用中的ref是无用的。变量本身不再使用ref元组更新。

这意味着完全不允许这种构造,这似乎是不可能的。