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# 12 hanya didukung pada .NET 8 dan versi yang lebih baru. C# 11 hanya didukung pada .NET 7 dan versi yang lebih baru. C# 10 hanya didukung pada .NET 6 dan versi yang lebih baru.

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

Defaults

Kompilator menentukan default berdasarkan berbagai aturan ini:

Target Versi Default versi bahasa pemrogram C#
.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.

Penting

Templat proyek baru untuk Visual Studio 2017 menambahkan entri <LangVersion>latest</LangVersion> ke file proyek baru. Jika Anda meningkatkan kerangka kerja target untuk proyek-proyek ini, <LangVersion> pengaturan dapat mengambil alih default untuk kerangka kerja target baru. Pastikan untuk menghapus <LangVersion>latest</LangVersion> dari file proyek Anda untuk memastikan proyek Anda menggunakan versi kompilator yang direkomendasikan untuk kerangka kerja target Anda. Anda dapat memperbarui kerangka kerja target untuk mengakses fitur bahasa pemrogram yang lebih baru.

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.
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 default nilai berbeda dari menghilangkan opsi LangVersion. 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.