System.ValueTuple NuGet如何扩展我的语言功能?

问题描述 投票:2回答:2

如果使用.Net 的代码

    public static (string Name, int Age) GetFoo()
    {
        return ("Bar", 99);
    }

使用.Net 4.6.2。那怎么可能? NuGet(DLL)如何更改我的可用语言功能?是否有任何有关此处发生情况的文档?我找不到任何东西。

c# roslyn valuetuple
2个回答
1
投票
编译器只需要

exist的某些功能即可绑定到它们。在(string Name, int Age)的情况下,它正在寻找System.ValueTuple<T1,T2>-只要找到它,它就会很高兴。 from where通常无关紧要-如果它来自当前的运行时系统库:如果它来自nuget包:也可以!

这有很多血统书;同样的方法也适用于很多事情:

    “ LINQ”-只需使用正确的方法即可解决,无论是否通过扩展方法
  • 异步/等待-只需存在GetAwaiter()等方法,无论是否通过扩展方法
  • 异步迭代器块和异步foreach-只需存在IAsyncEnumerable<T>等API
  • 异步处理-仅需要IAsyncDisposable接口存在
  • 。NET和C#拥有悠久的历史,允许nuget包(或其他库更新)“点亮”专为“当前”框架设计的C#功能
  • © www.soinside.com 2019 - 2024. All rights reserved.