我有这样的代码:的Visual Studio 2017 15.3简化空校验
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
_container =容器?抛出新的ArgumentNullException(“容器”);应该正确地构建。看起来像有效的代码 –
你好吗?这是Visual Studio的一个奇怪的错误消息格式。我的猜测是,无论您使用的构建过程是使用C#6编译器。 –
@Jon Skeet。我正在使用VS2017并击中F5。有趣的是在错误窗口中没有显示错误,但在Build下的输出窗口中显示了2个错误。 – Stuart