当前位置: 首页 > 知识库问答 >
问题:

C# 7 .NET / CLR / Visual Studio 版本要求

长孙章横
2023-03-14

最低是多少?运行C# 7的. NET framework和CLR版本要求?还有,我需要VS 2017编译C# 7吗?

共有2个答案

有骏奇
2023-03-14

要使用C#7现成的全部功能(不引用NuGet包等),您需要VS 2017和.NET 4.7作为目标框架。

澹台华晖
2023-03-14

你不需要瞄准。NET 4.6及更高版本,这是不正确的。要使用元组,你需要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");
}

同样,int。TryParse(“123”, out int i);在 .NET 2.0 中运行良好。

我没有测试每一个 C#7 功能,但总的来说,除了元组(及其相关功能,如解构),它应该在 .NET 2.0 及更高版本中工作,因为其中大部分只是语法糖。话虽如此,是的,您需要VS2017来编译C#7。我敢肯定,在某些时候,其他编译器会支持 C#7,但今天不会。

我确认工作的功能。NET 2.0:

  • 二进制文字
  • 数字分隔符
  • 内联输出参数
  • 使用_丢弃参数
  • 本地功能
  • 基于类型的模式匹配if(obj为int i)case int i:
  • 常量模式匹配如果(i为2)
  • 变量模式匹配如果(i是Var j)
  • 参考返回
  • 抛出表达式
  • 表达式体getter和setter
  • 表达式体构造函数和终结器
 类似资料:
  • 本文向大家介绍C#.NET中的公共语言运行时(CLR),包括了C#.NET中的公共语言运行时(CLR)的使用技巧和注意事项,需要的朋友参考一下 公共语言运行库(CLR)管理.NET程序的执行。即时编译器将编译后的代码转换为机器指令。这就是计算机执行的操作。 CLR提供的服务包括内存管理,异常处理,类型安全性等。 让我们看看C#中的公共语言运行时(CLR)的功能: 组件 使用CLR可以轻松处理其他语

  • 我把我的laravel项目上传到一个需要PHP7及以上版本的子域上。我已经更新了子域以使用PHP7。但是,当运行

  • 本文向大家介绍.Net、ASP.Net、C#、VisualStudio之间的关系是什么?相关面试题,主要包含被问及.Net、ASP.Net、C#、VisualStudio之间的关系是什么?时的应答技巧和注意事项,需要的朋友参考一下 答:.Net一般指的是.Net Framework,提供了基础的.Net类,这些类可以被任何一种.Net编程语言调用,.Net Framework还提供了CLR、JIT

  • VisualStudio (GitHub Extension for Visual Studio) 是 GitHub 的 Visual Studio 插件。 主要功能: 连接 GitHub 一键 clone 创建新库 发布本地库

  • 我正在尝试从Visual Studio发布应用程序,但出现错误: 命令"节点node_modules/webpack/bin/webpack.js--env.prod"以代码1退出。first azure app C:...\firstazureapp C:... firstazureapp\firstazureapp.csproj497 我已经按照这篇文章开始使用Angular 5和ASP. N

  • ; IsDotNETInstalled ; ; 用法: ; Call IsDotNETInstalled ; Pop $0 ; StrCmp $0 1 found.NETFramework no.NETFramework Function IsDotNETInstalled Push $0 Push $1 Push $2 Push