.NET Core 使用哪个 C# 版本?

Which C# version .NET Core uses?

我知道 C# version depends on .NET Framework.

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

特别是 .NET Core 2? C#7?

.NET Core 2.0 references Roslyn 2.3,对应Visual Studio 2017 version 15.3,支持C# 7.1。

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

NET Core 2.0 supports C# 7.1, which adds a number of new features, including:

  • The Main method, the application entry point, can be marked with the async keyword.
  • Inferred tuple names.
  • Default expressions.

您还可以查看检查 C# Language versioning page

The compiler determines a default based on these rules:

.NET Core 2.x C# 7.3

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

  • C# 7.3 Visual Studio 2017 version 15.7, and in the .NET Core 2.1 SDK 2.1.300 RC1
  • C# 7.2 Visual Studio 2017 version 15.5, and in the .NET Core 2.0 SDK.
  • C# 7.1 Visual Studio 2017 version 15.3, and in the .NET Core 2.0 SDK.
  • C# 7.0 Visual Studio 2017 and .NET Core 1.0 and later

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]