我有办法。
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
变量?
答案 0 :(得分:2)
我还没有使用过ref
值元组,但是据我理解,不是元组的内容是ref
,而是元组本身。因此,您需要指定一个标识符,例如在方法上使用ref
自变量。
解构元组值将意味着调用中的ref
是无用的。变量本身不再使用ref
元组更新。
这意味着完全不允许这种构造,这似乎是不可能的。