【问题标题】:Which C# version .NET Core uses?.NET Core 使用哪个 C# 版本?
【发布时间】:2020-03-17 00:47:00
【问题描述】:

我知道C# version depends on .NET Framework

但是.NET Core用的是哪个版本呢?

尤其是 .NET Core 2? C#7?

【问题讨论】:

  • 我希望你刚才的话不准确。 C# 版本和。 NET 版本几乎彼此独立:我可以用 .NET3.5 编译用 C#7.2 编写的代码,用 .NET4.7.2 编译用 C#3 编写的代码。您可以做什么主要取决于 Visual Studio 版本(因此:编译器)。

标签: c# .net-core version c#-7.0 .net-core-2.0


【解决方案1】:

.NET Core 2.0 referencesRoslyn 2.3,对应Visual Studio 2017 15.3版本,支持C# 7.1。

【讨论】:

  • 这是否意味着如果我使用 VS 2017 15.3 然后 C#7.1 用于所有项目?
  • 每个项目都有一个LangVersion设置,默认为“default”,意思是“最新的主版本”(本例中为C# 7.0)。如果要使用次要版本,例如 C# 7.1,则必须更改该设置。更多信息dontcodetired.com/blog/post/Using-C-71-Features
  • 您链接到的文件显示使用的 Roslyn 版本是 2.3.0-beta3-61816-04。我认为这是不对的:.Net Core 的发布版本不应该使用 Roslyn 的 beta 版本。
  • @svick 这显然是为这个 Core 版本故意做的。没关系,因为 Core 重新分发/复制编译器二进制文件。也就是说,很快就会有更好的设计。我不确定是哪个问题跟踪了这个,但我认为它与这项工作有关:github.com/dotnet/roslyn/issues/16717
  • @tpx86 我认为没有一种方便的方法可以从 dotnet cli 查看 C# 编译器的版本或它支持的语言版本。我在我的盒子上找到的最好的是:dotnet exec "c:\Program Files\dotnet\sdk\2.2.0-preview1-007622\Roslyn\bincore\csc.dll" -langversion:?。这可能是一个值得的 cli 问题/请求。
【解决方案2】:

C#what's new version history page 给出了所有版本的列表以及它们相关的 Visual Studio 和 .NET 核心版本:

  • C# 7.3 Visual Studio 2017 版本 15.7,在 .NET Core 2.1 SDK 2.1.300 RC1 中
  • C# 7.2 Visual Studio 2017 版本 15.5,在 .NET Core 2.0 SDK 中。
  • C# 7.1 Visual Studio 2017 版本 15.3 和 .NET Core 2.0 SDK。
  • C# 7.0 Visual Studio 2017 和 .NET Core 1.0 及更高版本

C# 8.0 目前仍处于预览阶段(2019 年 7 月 3 日)。

您还可以使用以下命令查看您的 SDK 版本:

dotnet --info

样本输出:

.NET Core SDK (reflecting any global.json):
 Version:   2.1.300
 Commit:    adab45bf0c

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.13
 OS Platform: Darwin
 RID:         osx.10.13-x64
 Base Path:   /usr/local/share/dotnet/sdk/2.1.300/

Host (useful for support):
  Version: 2.1.0
  Commit:  caa7b7e2ba

.NET Core SDKs installed:
  2.1.300 [/usr/local/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

【讨论】:

    【解决方案3】:

    来自 Microsoft .net 核心what's new page

    NET Core 2.0 支持 C# 7.1,它增加了许多新功能,包括:

    • 可以使用 async 关键字标记 Main 方法,即应用程序入口点。
    • 推断的元组名称。
    • 默认表达式。

    您也可以查看C# Language versioning page

    编译器根据这些规则确定默认值:

    .NET Core 2.x C# 7.3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多