2

我有以下方法。

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

4

1 回答 1

2

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

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

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

于 2019-05-08T13:31:29.913 回答