【问题标题】:Where's Deconstruct method of KeyValuePair<> struct?KeyValuePair<> 结构的解构方法在哪里?
【发布时间】:2019-11-24 14:16:35
【问题描述】:

我确定之前我看到过这个方法,因为一年前我问过: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 个输出参数和 一个 void 返回类型。

发生了什么事?

【问题讨论】:

    标签: c# .net compiler-errors key-value c#-7.0


    【解决方案1】:

    哎呀。看起来它最初并没有添加到任何地方:

    As documentation says:

    适用于

    .NET 核心

    • 3.0 预览版 6
    • 2.2
    • 2.1
    • 2.0

    .NET 标准

    • 2.1 预览

    看起来我一年前的目标是 .NET Core,而现在我使用的是 .NET Standard 2.0。

    【讨论】:

      【解决方案2】:

      您可能在 .NET Framework 上运行您的代码。虽然 .NET Framework 和 .NET Core 都支持 C# 7 解构语法,但目前仅在 .NET Core 2.0 及更高版本中支持 KeyValuePair&lt;TKey,TValue&gt;Deconstruct 方法。您可以查看Microsoft Docs 上的“适用于”部分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多