Visual Studio 2017 15.3简化空检查

时间:2017-08-15 09:54:01

标签: c# null visual-studio-2017

我有这段代码:

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

enter image description here

1 个答案:

答案 0 :(得分:7)

它是编译器问题,代码有效。他们更新了版本并修复了最新更新(几小时前)的错误。如果弹出通知或从网站上下载,您可以下载更新。

或者只是更新Microsoft编译器版本,因为它没有包含在VS 2017中......

Install-Package Microsoft.Net.Compilers -Version 2.3.0是我认为最新的