Ý nghĩa của giá trị default
xuất phát từ biên dịch C# tự . Vì vậy, để thay đổi nó có nghĩa là bạn cần phải thay đổi trình biên dịch.
Nhưng trong trình biên dịch đi kèm với Visual Studio 2017 default
thực sự có nghĩa là C# 7.0, vì vậy bạn không cần phải làm gì cả.
Hệ thống dự án Visual Studio chỉ chuyển giá trị phiên bản ngôn ngữ cho MSBuild. Và MSBuild chuyển nó tới trình biên dịch C# như một tùy chọn /langversion
. Tùy chọn /langversion
cho phép bạn chỉ định phiên bản ngôn ngữ phía trên mà trình biên dịch chấp nhận. Nói cách khác, nó cho phép bạn hạn chế các tính năng sử dụng ngôn ngữ cho một phiên bản nhất định. Nếu bạn sử dụng tính năng từ phiên bản ngôn ngữ cao hơn bạn đã chỉ định, trình biên dịch C# sẽ phát ra lỗi. Đó là tất cả. Nếu bạn chỉ định /langversion
là default
, trình biên dịch C# sẽ chấp nhận tất cả cú pháp hợp lệ mà phiên bản ngôn ngữ C# chính lớn nhất bao gồm (xem /langversion (C# Compiler Options) trang trên MSDN). Phiên bản C# chính lớn đi kèm với Visual Studio 2017 là 7.0. Xem Features Added in C# Language Versions trang trên kho C# GitHub.
Nếu bạn cần bật các tính năng của các phiên bản nhỏ nhất (7.1, 7.2, vv) hoặc cấm sử dụng một số tính năng C# mới cho nhiều dự án hoặc giải pháp cùng một lúc bạn có thể sử dụng tệp tùy chỉnh MSBuild 15 Directory.Build.props. trích đoạn có liên quan từ Customize your build bài viết trên MSDN:
... bây giờ bạn có thể thêm một tài sản mới vào mỗi dự án trong một bước bằng cách định nghĩa nó trong một tập tin duy nhất được gọi là Directory.Build.props tại thư mục gốc của repo của bạn. Khi MSBuild chạy, Microsoft.Common.props tìm kiếm cấu trúc thư mục của bạn cho tệp Directory.Build.props (và Microsoft.Common.targets tìm kiếm Directory.Build.targets). Nếu tìm thấy nó, nó sẽ nhập thuộc tính. Directory.Build.props là một tệp do người dùng định nghĩa cung cấp các tùy chỉnh cho các dự án trong một thư mục.
Tiếp theo ví dụ về một tập tin Directory.Build.props chỉ thị biên dịch C# để chấp nhận tất cả các cú pháp hợp lệ trẻ vị thành niên C# phiên bản mới nhất (C# 7.2 trong Visual Studio 2017 phiên bản 15.5.3) trong tất cả các dự án được file csproj của họ không bao gồm <LangVersion>
thẻ mà được ưu tiên:
<Project>
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
</Project>
Để biết thêm thông tin kiểm tra:
Nguồn
2017-12-01 14:13:17
trùng lặp có thể xảy ra của [Thay đổi ngôn ngữ của Visual Studio 2017 RC] (https://stackoverflow.com/questions/40709064/change-language -of-visual-studio-2017-rc) –
Tôi không có nghĩa là ngôn ngữ giao diện người dùng, nhưng ngôn ngữ của Mã số – kogoia
https://blogs.msdn.microsoft.com/benjaminperkins/2017/03/23/how-to-enable-c-7-in-visual-studio-2017/xem, điều này có thể giúp – Kirhgoph