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 default
wartość .