我有这段代码:
public UnityResolver(IUnityContainer container)
{
if (container == null) throw new ArgumentNullException("container");
_container = container;
}
Visual Studio显示3个灰点,建议简化空检查。
它的方法是这样的:
_container = container ?? throw new ArgumentNullException("container");
那不构建......
这里发生了什么?为什么它认为它可以简化这一点,为什么它将它简化为无法构建的东西。
错误是:
1>L:\SL1-(SentiLAN)-SentiLAN v1 - Current System\SentilanCore\WEB API with Plugins\APITest2\App_Start\UnityConfig.cs(31,39,31,44): error CS1525: Invalid expression term 'throw'
1>L:\SL1-(SentiLAN)-SentiLAN v1 - Current System\SentilanCore\WEB API with Plugins\APITest2\App_Start\UnityConfig.cs(31,39,31,44): error CS1002: ; expected
答案 0 :(得分:7)
它是编译器问题,代码有效。他们更新了版本并修复了最新更新(几小时前)的错误。如果弹出通知或从网站上下载,您可以下载更新。
或者只是更新Microsoft编译器版本,因为它没有包含在VS 2017中......
Install-Package Microsoft.Net.Compilers -Version 2.3.0
是我认为最新的