Udostępnij za pośrednictwem


Konfigurowanie wersji języka C#

Ostrzeżenie

LangVersion Ustawienie elementu na latest wartość jest niezalecone. Ustawienie latest oznacza, że zainstalowany kompilator używa najnowszej wersji. Może to zmienić się z maszyny na maszynę, co sprawia, że kompilacje są zawodne. Ponadto włącza funkcje językowe, które mogą wymagać funkcji środowiska uruchomieniowego lub biblioteki, które nie są uwzględnione w bieżącym zestawie SDK.

Jeśli musisz jawnie określić wersję języka C#, możesz to zrobić na kilka sposobów:

Napiwek

Wersja języka w programie Visual Studio jest widoczna na stronie właściwości projektu. Na karcie Kompilacja w okienku Zaawansowane zostanie wyświetlona wybrana wersja.

Aby dowiedzieć się, jakiej wersji języka używasz, umieść #error version w kodzie (wielkość liter). Dzięki temu kompilator zgłasza błąd kompilatora CS8304 z komunikatem zawierającym używaną wersję kompilatora i bieżącą wybraną wersję języka. Aby uzyskać więcej informacji, zobacz #error (odwołanie w C#).

Dlaczego nie można wybrać innej wersji języka C# w programie Visual Studio

W programie Visual Studio opcja zmiany wersji języka za pomocą interfejsu użytkownika może być wyłączona, ponieważ domyślna wersja jest zgodna z platformą docelową projektu (TFM). Ta domyślna konfiguracja zapewnia zgodność między funkcjami języka i obsługą środowiska uruchomieniowego.

Na przykład zmiana docelowej wersji TFM (na przykład z .NET 6 na .NET 9) odpowiednio zaktualizuje wersję języka z C# 10 do C# 13. Takie podejście zapobiega problemom ze zgodnością środowiska uruchomieniowego i minimalizuje nieoczekiwane błędy kompilacji z powodu nieobsługiwanych funkcji językowych.

Jeśli potrzebujesz określonej wersji językowej, która różni się od wybranej automatycznie, zapoznaj się z poniższymi metodami, aby zastąpić ustawienia domyślne bezpośrednio w pliku projektu.

Edytowanie pliku projektu

Możesz ustawić wersję języka w pliku projektu. Jeśli na przykład jawnie chcesz uzyskać dostęp do funkcji w wersji zapoznawczej, dodaj element podobny do następującego:

<PropertyGroup>
   <LangVersion>preview</LangVersion>
</PropertyGroup>

preview Wartość używa najnowszej dostępnej wersji zapoznawczej języka C# obsługiwanej przez kompilator.

Konfigurowanie wielu projektów

Aby skonfigurować wiele projektów, można utworzyć plik Directory.Build.props , zazwyczaj w katalogu rozwiązania, który zawiera <LangVersion> element. Dodaj następujące ustawienie do pliku Directory.Build.props :

<Project>
 <PropertyGroup>
   <LangVersion>preview</LangVersion>
 </PropertyGroup>
</Project>

Kompilacje we wszystkich podkatalogach katalogu zawierającego ten plik używają teraz wersji zapoznawczej języka C#. Aby uzyskać więcej informacji, zobacz Dostosowywanie kompilacji.

Dokumentacja wersji języka C#

Ważny

Używanie nowszej wersji języka C# niż wersja skojarzona z docelowym programem TFM nie jest obsługiwana.

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).