Bagikan melalui


Penerapan versi bahasa pemrogram C#

kompilator C# terbaru menentukan versi bahasa pemrogram default berdasarkan kerangka kerja target atau kerangka kerja proyek Anda. Visual Studio tidak menyediakan UI (antarmuka pengguna) untuk mengubah nilai, tetapi Anda dapat mengubahnya dengan mengedit file csproj. Pilihan default memastikan bahwa Anda menggunakan versi bahasa pemrogram terbaru yang kompatibel dengan kerangka kerja target Anda. Anda mendapat manfaat dari akses ke fitur bahasa pemrogram terbaru yang kompatibel dengan target proyek Anda. Pilihan default ini juga memastikan Anda tidak menggunakan bahasa pemrogram yang memerlukan jenis atau perilaku runtime bahasa umum yang tidak tersedia dalam kerangka kerja target Anda. Memilih versi bahasa pemrogram yang lebih baru dari default dapat menyebabkan kesulitan dalam mendiagnosis kesalahan waktu kompilasi dan runtime bahasa umum.

C# 14 hanya didukung pada .NET 10 dan versi yang lebih baru. C# 13 hanya didukung pada .NET 9 dan versi yang lebih baru. C# 12 hanya didukung pada .NET 8 dan versi yang lebih baru. Menggunakan versi bahasa C# yang lebih baru dari versi yang terkait dengan TFM target Anda tidak didukung.

Periksa halaman kompatibilitas platform Visual Studio untuk detail tentang versi .NET mana yang didukung oleh versi Visual Studio. Periksa halaman Mono untuk C# untuk kompatibilitas Mono dengan versi C#.

Default

Kompilator menentukan default berdasarkan berbagai aturan ini:

Target Versi Default versi bahasa pemrogram C#
.NET 10.x C# 14
.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 Standar 2.1 C# 8.0
.NET Standar 2.0 C# 7.3
.NET Standar 1.x C# 7.3
.NET Framework all C# 7.3

Jika proyek Anda menargetkan preview kerangka kerja yang memiliki versi bahasa pratinjau yang sesuai, versi bahasa yang digunakan adalah versi bahasa pratinjau. Anda menggunakan fitur terbaru dengan pratinjau tersebut di lingkungan apa pun, tanpa memengaruhi proyek yang menargetkan versi .NET Core yang dirilis.

Referensi versi bahasa pemrogram C#

Tabel berikut ini memperlihatkan semua versi bahasa pemrogram C# saat ini. Pengkompilasi yang lebih lama mungkin tidak memahami setiap nilai. Jika Anda menginstal .NET SDK terbaru, Anda memiliki akses ke semua yang tercantum.

Nilai Makna
preview Kompilator menerima semua sintaks bahasa yang valid dari versi pratinjau terbaru.
latest Kompilator menerima sintaks dari versi kompilator terbaru yang dirilis (termasuk versi minor).
latestMajor
atau default
Kompilator menerima sintaks dari versi utama kompilator terbaru yang dirilis.
14.0 Pengkompilasi hanya menerima sintaksis yang disertakan dalam C# 14 atau yang lebih rendah.
13.0 Pengkompilasi hanya menerima sintaksis yang disertakan dalam C# 13 atau yang lebih rendah.
12.0 Pengkompilasi hanya menerima sintaksis yang disertakan dalam C# 12 atau yang lebih rendah.
11.0 Pengkompilasi hanya menerima sintaksis yang disertakan dalam C# 11 atau yang lebih rendah.
10.0 Kompilator hanya menerima sintaks yang disertakan dalam C# 10 atau lebih rendah.
9.0 Kompilator hanya menerima sintaks yang disertakan dalam C# 9 atau lebih rendah.
8.0 Kompilator hanya menerima sintaks yang disertakan dalam C# 8.0 atau lebih rendah.
7.3 Kompilator hanya menerima sintaks yang disertakan dalam C# 7.3 atau lebih rendah.
7.2 Kompilator hanya menerima sintaks yang disertakan dalam C# 7.2 atau lebih rendah.
7.1 Kompilator hanya menerima sintaks yang disertakan dalam C# 7.1 atau lebih rendah.
7 Kompilator hanya menerima sintaks yang disertakan dalam C# 7.0 atau lebih rendah.
6 Kompilator hanya menerima sintaks yang disertakan dalam C# 6.0 atau lebih rendah.
5 Kompilator hanya menerima sintaks yang disertakan dalam C# 5.0 atau lebih rendah.
4 Kompilator hanya menerima sintaks yang disertakan dalam C# 4.0 atau lebih rendah.
3 Kompilator hanya menerima sintaks yang disertakan dalam C# 3.0 atau lebih rendah.
ISO-2
atau 2
Kompilator hanya menerima sintaks yang disertakan dalam ISO/IEC 23270:2006 C# (2.0).
ISO-1
atau 1
Kompilator hanya menerima sintaks yang disertakan dalam ISO/IEC 23270:2003 C# (1.0/1.2).

Catatan

Menentukan LangVersion dengan nilai berbeda dari menghilangkan default. Menentukan default menggunakan versi terbaru bahasa yang didukung pengkompilasi, tanpa memperhitungkan kerangka kerja target. Misalnya, membangun proyek yang menargetkan .NET 6 dari versi Visual Studio 2022 saat ini menggunakan C# 10 jika LangVersion tidak ditentukan, tetapi menggunakan C# 12 jika LangVersion diatur ke default.