KeyValuePair<> 结构的 Deconstruct 方法在哪里?
Where's Deconstruct method of KeyValuePair<> struct?
我确定我以前见过这个方法,因为一年前我问过:
但现在我根本找不到它,也找不到任何关于它被删除的痕迹,任何问题,什么都没有。
编译器同意:
var s = new KeyValuePair<int, int>(1, 3);
var (x, y) = s;
Error CS1061 'KeyValuePair' does not contain a definition
for 'Deconstruct' and no accessible extension method 'Deconstruct'
accepting a first argument of type 'KeyValuePair' could be
found (are you missing a using directive or an assembly reference?
Error CS8129 No suitable 'Deconstruct' instance or extension method
was found for type 'KeyValuePair', with 2 out parameters and
a void return type.
怎么回事?
您可能 运行 .NET Framework 上的代码。虽然 .NET Framework 和 .NET Core 都支持 C# 7 解构语法,但目前仅 .NET Core 2.0 及更高版本支持 KeyValuePair<TKey,TValue>
的 Deconstruct
方法。您可以查看 Microsoft Docs 上的 "Applies to" 部分。
糟糕。看起来它最初并没有在任何地方添加:
Applies to
.NET Core
- 3.0 Preview 6
- 2.2
- 2.1
- 2.0
.NET Standard
- 2.1 Preview
看起来我一年前的目标是 .NET Core,现在我正在使用 .NET Standard 2.0。
我确定我以前见过这个方法,因为一年前我问过:
但现在我根本找不到它,也找不到任何关于它被删除的痕迹,任何问题,什么都没有。
编译器同意:
var s = new KeyValuePair<int, int>(1, 3);
var (x, y) = s;
Error CS1061 'KeyValuePair' does not contain a definition for 'Deconstruct' and no accessible extension method 'Deconstruct' accepting a first argument of type 'KeyValuePair' could be found (are you missing a using directive or an assembly reference?
Error CS8129 No suitable 'Deconstruct' instance or extension method was found for type 'KeyValuePair', with 2 out parameters and a void return type.
怎么回事?
您可能 运行 .NET Framework 上的代码。虽然 .NET Framework 和 .NET Core 都支持 C# 7 解构语法,但目前仅 .NET Core 2.0 及更高版本支持 KeyValuePair<TKey,TValue>
的 Deconstruct
方法。您可以查看 Microsoft Docs 上的 "Applies to" 部分。
糟糕。看起来它最初并没有在任何地方添加:
Applies to
.NET Core
- 3.0 Preview 6
- 2.2
- 2.1
- 2.0
.NET Standard
- 2.1 Preview
看起来我一年前的目标是 .NET Core,现在我正在使用 .NET Standard 2.0。