我有這樣的代碼:的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