Udostępnij za pośrednictwem


Konfigurowanie wersji języka C#

Informacje zawarte w tym artykule dotyczą platformy .NET 5 i nowszych wersji. Aby zapoznać się z projektami platformy UWP, zobacz te informacje w artykule dotyczącym Wybieranie wersji platformy UWP.

W programie Visual Studio opcja zmiany wersji języka za pośrednictwem interfejsu użytkownika jest 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. Aby zmienić wersję języka w programie Visual Studio, zmień strukturę docelową projektu.

Na przykład zmiana docelowej wartości TFM (na przykład z .NET 6 na .NET 9) aktualizuje odpowiednio wersję 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 metodami w tym artykule, aby zastąpić ustawienia domyślne bezpośrednio w pliku projektu.

Ostrzeżenie

Ustawienie elementu LangVersion na latest jest niewskazane. Ustawienie latest oznacza, że zainstalowany kompilator używa najnowszej wersji. Wartość latest może ulec zmianie z maszyny na maszynę, co sprawia, że kompilacje są zawodne. Ponadto umożliwia korzystanie z funkcji językowych, 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ę, której wersji językowej aktualnie używasz, umieść #error version w kodzie, uwzględniając wielkość liter. Ta pragma sprawia, że kompilator zgłasza błąd kompilatora CS8304 z komunikatem zawierającym wersję kompilatora i bieżącą wybraną wersję języka. Aby uzyskać więcej informacji na temat tego pragma, zobacz #error (C# Reference).

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 przykładu:

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

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

Konfigurowanie wielu projektów

Aby skonfigurować wiele projektów w języku C#, można utworzyć plik Directory.Build.props, zazwyczaj w katalogu rozwiązania, który zawiera element <LangVersion>. 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.

Uwaga

Wersje dla języka C# i VB są różne. Nie należy używać pliku Directory.Build.Props dla folderu, w którym podkatalogi zawierają projekty dla obu języków. Wersje nie są zgodne.

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.
14.0 Kompilator akceptuje tylko składnię zawartą w języku C# 14 lub niższym.
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).