Which C# version .NET Core uses?
.NET Core 2.0 references Roslyn 2.3, which corresponds to Visual Studio 2017 version 15.3 and supports C# 7.1.
The C# what's new version history page gives a list of all versions plus their associated Visual Studio and .NET core version:
- 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 is still in preview at this time (3-Jul-2019).
You can also see your SDK version with this command:
dotnet --info
Sample output:
.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]
From Microsoft .net core 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.
You can also review check the C# Language versioning page
The compiler determines a default based on these rules:
.NET Core 2.x C# 7.3