从 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
元组进行更新。
这意味着不允许这种构造是完全合理的,但似乎不可能这样做。
我有以下方法
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
元组进行更新。
这意味着不允许这种构造是完全合理的,但似乎不可能这样做。