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:
- Ręcznie edytuj plik projektu.
- Ustaw wersję języka dla wielu projektów w podkatalogu.
- Skonfiguruj opcję kompilatora LangVersion.
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). |