Điều này có thể là do trình biên dịch sử dụng theo các phiên bản ngôn ngữ C # khác nhau cho các Khung mục tiêu khác nhau.
Để ghi đè ngôn ngữ C # mặc định, hãy thêm vào tệp dự án (như được đề xuất trong câu hỏi):
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
hoặc là:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
Xem phiên bản ngôn ngữ C # cho các phiên bản ngôn ngữ C # mặc định cho các khung mục tiêu khác nhau và cách chọn thủ công phiên bản ngôn ngữ C #.
Xem thêm câu trả lời tràn ngăn xếp C # 8 có hỗ trợ .NET Framework không? để biết thêm thông tin về chủ đề này.
Đây là một phần của bài viết phiên bản ngôn ngữ C # :
Phiên bản ngôn ngữ C #
Trình biên dịch C # mới nhất xác định phiên bản ngôn ngữ mặc định dựa trên khung hoặc khung mục tiêu của dự án của bạn. Điều này là do ngôn ngữ C # có thể có các tính năng dựa trên các loại hoặc các thành phần thời gian chạy không có sẵn trong mỗi lần triển khai .NET. Điều này cũng đảm bảo rằng đối với bất kỳ mục tiêu nào mà dự án của bạn được xây dựng dựa trên, bạn sẽ có được phiên bản ngôn ngữ tương thích cao nhất theo mặc định.
Các quy tắc trong bài viết này áp dụng cho trình biên dịch được phân phối với Visual Studio 2019 hoặc .NET Core 3.0 SDK. Trình biên dịch C # là một phần của bản cài đặt Visual Studio 2017 hoặc các phiên bản .NET Core SDK trước đó nhắm mục tiêu C # 7.0 theo mặc định.
Mặc định
Trình biên dịch xác định mặc định dựa trên các quy tắc sau:
--------------------------------------------------------
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
--------------------------------------------------------
Ghi đè mặc định
Nếu bạn phải chỉ định rõ ràng phiên bản C # của mình, bạn có thể làm như vậy theo nhiều cách:
- Chỉnh sửa thủ công tệp dự án của bạn.
- Đặt phiên bản ngôn ngữ cho nhiều dự án trong thư mục con.
- Cấu hình tùy chọn trình biên dịch -langversion.
Chỉnh sửa tập tin dự án
Bạn có thể đặt phiên bản ngôn ngữ trong tệp dự án của bạn. Ví dụ: nếu bạn rõ ràng muốn truy cập vào các tính năng xem trước, hãy thêm một yếu tố như thế này:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
Giá trị previewsử dụng phiên bản ngôn ngữ C # xem trước mới nhất có sẵn mà trình biên dịch của bạn hỗ trợ.
Cấu hình nhiều dự án
Để cấu hình nhiều dự án, bạn có thể tạo tệp Directory.Build.props có chứa <LangVersion>phần tử. Bạn thường làm điều đó trong thư mục giải pháp của bạn. Thêm phần sau vào tệp Directory.Build.props trong thư mục giải pháp của bạn:
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
Bây giờ, các bản dựng trong mọi thư mục con của thư mục chứa tệp đó sẽ sử dụng phiên bản C # xem trước. Để biết thêm thông tin, hãy xem bài viết về Tùy chỉnh bản dựng của bạn .