使用较旧的 .NET 版本和较新的 C# 版本的副作用

我在装有 Visual Studio 2017 的 Windows 10 机器上的 .NET 项目中编写了一些代码。目标框架是 4.5.2。并且使用的 C# 版本是默认的(在 "C:\Windows\Microsoft.NET\Framework\v4.0.30319" 下运行 csc 工具显示 C# 5。

我使用了 C# 6 中的一个功能。Monadic null 检查(https://damieng.com/blog/2013/12/09/probable-c-6-0-features-illustrated)。并且编译器不会抱怨它。

这是正常的行为还是我错过了什么?编译器不应该抱怨吗?


炎炎设计
浏览 255回答 2
2回答

繁星coding

您缺少的是正在使用的 C# 编译器不是您找到的 csc.exe。Visual Studio 带有自己的 C# 编译器,它支持 C# 6(以及更高版本,具体取决于您安装的 VS 的确切版本)。

HUX布斯

C# 语言版本由 Visual Studio 决定,而不是由 .Net Framework 决定。只要您的 Visual Studio 版本支持 C# 版本,您就不会遇到任何错误。在 Visual Studio 中配置语言版本:https ://docs.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version
打开App,查看更多内容
随时随地看视频慕课网APP