为什么解构不能在左侧混合声明和表达式

G. *_*ari 3 c# tuples

我有以下代码:

public static (int a, int b) f12()
{
    return (1, 2);
}

public static void test()
{
    int a;
    (a, int b) = f12(); //here is the error
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,出现错误:

解构操作不能在左侧混合声明和表达式

我不明白为什么。有什么建议么?

Bri*_*ian 5

当我尝试编译它时,出现错误:

解构不能在左边混合声明和表达式,我不明白为什么。

正如埃里克(Eric)所说,获得“为什么”问题答案的最佳地点是设计师。方便地,C#设计的会议记录实际上是公开发布的。因此,我们实际上可以回答这些问题!

引用会议记录,这是您不能混合使用声明和表达式的原因:

[支持混合的声明和表达式]是我们没有实现的后期设计更改。

到目前为止,正在考虑将此功能添加到C#7.X的将来版本中。

相关链接: