从 ref 变量解构元组

Deconstruct tuple from ref variable

我有以下方法

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变量?

我还没有使用过 ref 值元组,但在我的理解中,不是元组的内容是 ref,而是元组本身。因此,您需要指定一个标识符,就像方法上的 ref 参数一样。

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

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