尽管具有Deconstruct扩展方法,为什么在Func <keyvaluepair,t>中解构无效?

时间:2018-12-28 19:38:00

标签: c# c#-7.0

在下面的示例中,在函数Test()中,即使我有Deconstruct的{​​{1}}扩展方法,第一行也可以成功编译,而第二行则不能成功编译。为什么会这样?

KeyValuePair

1 个答案:

答案 0 :(得分:2)

解构是专门用于为变量分配值的功能。在您的代码中,您没有为变量分配值,因此不会发生解构。您可以在需要该类型的任何地方使用解构类型(在这种情况下,作为匿名函数的参数),只能在分配给变量时对其进行解构。

实际上使用元组的第一个选择并没有发生解构,这只是值元组的语法。并不是解构(尽管看起来很相似;功能被设计为看起来很相似,但是在技术上却是不同的功能)。