Udostępnij za pośrednictwem


Przechowywanie wersji języka C#

Najnowszy kompilator języka C# określa domyślną wersję języka na podstawie docelowej struktury lub struktur projektu. Program Visual Studio nie udostępnia interfejsu użytkownika do zmiany wartości, ale można go zmienić, edytując plik csproj . Wybór domyślny gwarantuje, że używasz najnowszej wersji językowej zgodnej z platformą docelową. Możesz korzystać z dostępu do najnowszych funkcji językowych zgodnych z celem projektu. Ten wybór domyślny gwarantuje również, że nie używasz języka, który wymaga typów lub zachowania środowiska uruchomieniowego, który nie jest dostępny w strukturze docelowej. Wybranie nowszej wersji językowej niż domyślna może spowodować trudności z diagnozowaniem błędów czasu kompilacji i środowiska uruchomieniowego.

Język C# 13 jest obsługiwany tylko na platformie .NET 9 i nowszych wersjach. Język C# 12 jest obsługiwany tylko na platformie .NET 8 i nowszych wersjach. Język C# 11 jest obsługiwany tylko na platformie .NET 7 i nowszych wersjach.

Sprawdź stronę zgodności platformy Visual Studio, aby uzyskać szczegółowe informacje o tym, które wersje platformy .NET są obsługiwane przez wersje programu Visual Studio. Sprawdź stronę Mono dla języka C# pod kątem zgodności mono z wersjami języka C#.

Defaults

Kompilator określa wartość domyślną na podstawie następujących reguł:

Obiekt docelowy Wersja Domyślna wersja języka C#
.NET 9.x C# 13
.NET 8.x C# 12
.NET 7.x C# 11
.NET 6.x C# 10
.NET 5.x C# 9.0
.NET Core 3.x C# 8.0
.NET Core 2.x C# 7.3
.NET Standard 2.1 C# 8.0
.NET Standard 2.0 C# 7.3
.NET Standard 1.x C# 7.3
.NET Framework wszystkie C# 7.3

Jeśli projekt jest przeznaczony dla platformy preview z odpowiednią wersją języka w wersji zapoznawczej, używana wersja językowa to wersja zapoznawcza. Najnowsze funkcje są używane w wersji zapoznawczej w dowolnym środowisku bez wpływu na projekty przeznaczone dla wydanej wersji platformy .NET Core.

Dokumentacja wersji języka C#

W poniższej tabeli przedstawiono wszystkie bieżące wersje języka C#. Starsze kompilatory mogą nie rozumieć każdej wartości. Jeśli zainstalujesz najnowszy zestaw .NET SDK, masz dostęp do wszystkich elementów wymienionych.

Wartość Znaczenie
preview Kompilator akceptuje całą prawidłową składnię języka z najnowszej wersji zapoznawczej.
latest Kompilator akceptuje składnię z najnowszej wydanej wersji kompilatora (w tym wersji pomocniczej).
latestMajor
lub default
Kompilator akceptuje składnię z najnowszej wydanej wersji głównej kompilatora.
13.0 Kompilator akceptuje tylko składnię zawartą w języku C# 13 lub niższym.
12.0 Kompilator akceptuje tylko składnię zawartą w języku C# 12 lub niższym.
11.0 Kompilator akceptuje tylko składnię zawartą w języku C# 11 lub niższym.
10.0 Kompilator akceptuje tylko składnię zawartą w języku C# 10 lub niższym.
9.0 Kompilator akceptuje tylko składnię zawartą w języku C# 9 lub niższym.
8.0 Kompilator akceptuje tylko składnię zawartą w języku C# 8.0 lub niższym.
7.3 Kompilator akceptuje tylko składnię zawartą w języku C# 7.3 lub niższym.
7.2 Kompilator akceptuje tylko składnię zawartą w języku C# 7.2 lub niższym.
7.1 Kompilator akceptuje tylko składnię zawartą w języku C# 7.1 lub niższym.
7 Kompilator akceptuje tylko składnię zawartą w języku C# 7.0 lub niższym.
6 Kompilator akceptuje tylko składnię zawartą w języku C# 6.0 lub niższym.
5 Kompilator akceptuje tylko składnię zawartą w języku C# 5.0 lub niższym.
4 Kompilator akceptuje tylko składnię zawartą w języku C# 4.0 lub niższym.
3 Kompilator akceptuje tylko składnię zawartą w języku C# 3.0 lub niższym.
ISO-2
lub 2
Kompilator akceptuje tylko składnię zawartą w iso/IEC 23270:2006 C# (2.0).
ISO-1
lub 1
Kompilator akceptuje tylko składnię zawartą w iso/IEC 23270:2003 C# (1.0/1.2).

Uwaga

Określanie elementu LangVersion z wartością default różni się od pominięcia opcji LangVersion . Określenie default używa najnowszej wersji języka obsługiwanego przez kompilator bez uwzględniania platformy docelowej. Na przykład kompilowanie projektu przeznaczonego dla platformy .NET 6 z bieżącej wersji programu Visual Studio 2022 używa języka C# 10, jeśli parametr LangVersion nie jest określony, ale używa języka C# 12, jeśli parametr LangVersion jest ustawiony na defaultwartość .