我确定以前我曾经见过这种方法,因为一年前我问过:What is the purpose of Deconstruct method in KeyValuePair<> struct?
但是现在我根本找不到它,或者关于它被删除的任何痕迹,任何问题,什么都没有。
编译器同意:
var s = new KeyValuePair<int, int>(1, 3);
var (x, y) = s;
错误CS1061'KeyValuePair'不包含定义 用于“解构”,没有可用的扩展方法“解构” 接受类型为'KeyValuePair'的第一个参数可能是 找到(您是否缺少using指令或程序集引用?
错误CS8129没有合适的“解构”实例或扩展方法 找到类型为“ KeyValuePair”的参数,其中包含2个out参数和 无效的返回类型。
这是怎么回事?
答案 0 :(得分:2)
糟糕。最初似乎没有在所有地方添加它:
适用于
.NET Core
- 3.0预览版6
- 2.2
- 2.1
- 2.0
.NET标准
- 2.1预览
好像我在一年前瞄准了.NET Core,现在我使用的是.NET Standard 2.0。
答案 1 :(得分:0)
您可能正在.NET Framework上运行代码。尽管.NET Framework和.NET Core均支持C#7解构语法,但{.1}的Deconstruct
方法目前仅在.NET Core 2.0及更高版本中受支持。您可以检查Microsoft Docs上的“适用于”部分。