Ini bisa jadi karena kompiler menggunakan versi bahasa C # yang berbeda untuk Kerangka Target yang berbeda.
Untuk mengganti bahasa C # default, tambahkan ke file proyek (seperti yang disarankan dalam pertanyaan):
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
atau:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
Lihat versi bahasa C # untuk versi bahasa C # default untuk kerangka kerja target yang berbeda dan cara memilih versi bahasa C # secara manual.
Lihat juga jawaban stack overflow Apakah C # 8 mendukung .NET Framework? untuk informasi lebih lanjut tentang topik ini.
Ini adalah bagian dari artikel versi bahasa C # :
Versi bahasa C #
Kompiler C # terbaru menentukan versi bahasa default berdasarkan kerangka kerja atau kerangka kerja target proyek Anda. Ini karena bahasa C # mungkin memiliki fitur yang bergantung pada tipe atau komponen runtime yang tidak tersedia di setiap implementasi .NET. Ini juga memastikan bahwa untuk target apa pun proyek Anda dibangun melawan, Anda mendapatkan versi bahasa yang kompatibel tertinggi secara default.
Aturan dalam artikel ini berlaku untuk kompiler yang dikirim dengan Visual Studio 2019 atau .NET Core 3.0 SDK. Kompiler C # yang merupakan bagian dari instalasi Visual Studio 2017 atau versi .NET Core SDK sebelumnya menargetkan C # 7.0 secara default.
Default
Kompiler menentukan default berdasarkan aturan-aturan ini:
--------------------------------------------------------
Target framework | version | C# language version default
--------------------------------------------------------
.NET Core | 3.x | C# 8.0
.NET Core | 2.x | C# 7.3
.NET Standard | 2.1 | C# 8.0
.NET Standard | 2.0 | C# 7.3
.NET Standard | 1.x | C# 7.3
.NET Framework | all | C# 7.3
--------------------------------------------------------
Timpa default
Jika Anda harus menentukan versi C # secara eksplisit, Anda dapat melakukannya dengan beberapa cara:
- Edit file proyek Anda secara manual.
- Atur versi bahasa untuk beberapa proyek dalam subdirektori.
- Konfigurasikan opsi kompilasi -langversion.
Edit file proyek
Anda dapat mengatur versi bahasa di file proyek Anda. Misalnya, jika Anda secara eksplisit ingin akses ke fitur pratinjau, tambahkan elemen seperti ini:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Nilai preview
menggunakan versi bahasa C # pratinjau terbaru yang tersedia yang didukung oleh kompiler Anda.
Konfigurasikan banyak proyek
Untuk mengkonfigurasi beberapa proyek, Anda bisa membuat file Directory.Build.props yang berisi <LangVersion>
elemen. Anda biasanya melakukannya di direktori solusi Anda. Tambahkan berikut ini ke file Directory.Build.props di direktori solusi Anda:
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
Sekarang, membangun di setiap subdirektori dari direktori yang berisi file itu akan menggunakan versi pratinjau C #. Untuk informasi lebih lanjut, lihat artikel tentang Kustomisasi bangunan Anda .