ili*_*ias 47 .net c# requirements c#-7.0
运行C#7的最低.NET框架和CLR版本要求是什么?另外,我需要VS 2017来编译C#7吗?
dme*_*lio 99
您不需要以.NET 4.6及更高版本为目标,这是不正确的.要使用Tuples,您需要System.ValueTuple NuGet包.在https://www.nuget.org/packages/System.ValueTuple/上,您可以看到它支持4.5及更高版本,实际上,它支持4.0及更高版本.如果你想变得疯狂,如果你创建自己的System.ValueTuple类,它确实完成了该软件包的功能,那么它将在.NET 3.5上运行,也可能更老.对于"任务类"类型,您还需要一个NuGet包,https://www.nuget.org/packages/System.Threading.Tasks.Extensions/ .根据其文档,此软件包也适用于.NET 4.5及更高版本.
其他C#7功能只适用于.NET 2及更高版本,因为它们只是语法糖.例如,我刚刚在.NET 2.0中编写了以下内容,它正确抛出:
static void Main(string[] args)
{
string test = null;
string d = test ?? throw new ApplicationException("test");
}
Run Code Online (Sandbox Code Playgroud)
同样,int.TryParse("123", out int i);在.NET 2.0中工作得很好.
我没有测试每一个C#7的功能,但总的来说,除了元组(以及它们的相关功能,如解构),它应该在.NET 2.0及更高版本中工作,因为它大部分只是语法糖.话虽这么说,是的,你需要VS2017来编译C#7.我肯定在某些时候其他编译器会支持C#7但不支持今天.
功能我确认在.NET 2.0中工作:
out参数_丢弃输出参数if (obj is int i)和case int i:if (i is 2)if (i is var j)