.NET 版本和 C# 版本之间的关系? [关闭]

Posted

技术标签:

【中文标题】.NET 版本和 C# 版本之间的关系? [关闭]【英文标题】:Relationship between .NET version and C# version? [closed] 【发布时间】:2022-01-20 00:33:32 【问题描述】:

如何确定可以针对特定 .NET Framework 版本使用的 C# 版本?

我已阅读:

https://***.com/a/247623/223742 https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies

但是,我无法确定可以使用哪个 C# 版本来对抗 .NET Framework 4.6.1。

【问题讨论】:

C# 版本与编译器有关,与 .NET Framework 无关。检查second answer 到您提到的问题。 @AhmedAbdelhameed 对,因此我可以使用 C# 8.0 对抗 .NET 4.61?如果我不能使用 8.0 中不受 4.61 支持的功能,VS 会抱怨编译错误,我是否更正? 有关基于框架的默认 C# 版本的信息,请参阅 this page @TheEdge 我还没有尝试过 C# 8.0,但总的来说,是的,这是正确的。例如,C# 7.1 引入了async Main。现在,如果您启动一个 .NET 2.0 项目并尝试使用async Main,您将无法编译该程序,因为缺少框架功能。 我不清楚为什么这个问题被搁置了,尤其是在“离题”的情况下。 【参考方案1】:

C#版本历史可以在here找到。

C# 版本取决于 .NET SDK 附带的编译器版本(通常与 Visual Studio 安装程序一起安装)。

您仍然可以将较低版本的 .NET 实现(即 .NET Core、Mono 或过时的 .NET Framework)作为使用更高版本 SDK 构建的项目的目标,但某些语言功能不受支持,它们是使用目标 .NET 实现未提供的一些内置类型实现的。例如,即使使用最新的 .NET SDK 构建它,也不能使用面向 .NET Framework 4.5 的元组语法,因为 .NET Framework 4.5 没有 ValueType 定义。但有些可以通过补充它们的 nuget 包来修复,例如 System.ValueTuple

C# 8.0 已经与 .NET Core 3.0 一起发布。

【讨论】:

以上是关于.NET 版本和 C# 版本之间的关系? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

.NET Framework各版本汇总以及之间的关系

anaconda版本和pytyon版本之间的关系

如何查看c#的版本.net framework

CUDA 版本,显卡驱动,Ubuntu版本,GCC版本之间的对应关系

ASP.NET ADO.NET 和C#编程语言他们之间的关系是怎样的?

c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结转载