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:
- 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ę, 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). |