c# - Visual Studio 2017 15.3 简化空检查

标签 c# null visual-studio-2017

我有这个代码:

public UnityResolver(IUnityContainer container)
{
   if (container == null) throw new ArgumentNullException("container");
   _container = container;
}

Visual Studio 显示 3 个灰点并建议简化 null 检查。

它使方法变成这样:

_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

最佳答案

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

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

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

关于c# - Visual Studio 2017 15.3 简化空检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45690517/

相关文章:

c# - 如何获取 WPF DataGrid 选定的单元格值?

SQL 标量值函数返回 Null

ios - NSInvalidArgumentException',reas-[__NSPlaceholderDictionary initWithObjects :forKeys:count:]: attempt to insert nil object from objects[4]'

azure - 无法在本地调试azure函数

c# - 如何在 VS2017 中为 Entity Framework 添加 Oracle 提供程序?

c++ - 变量模板中的除法在 Visual Studio 2017 中返回零

c# - Method覆盖和方法隐藏的执行流程

c# - 执行Response.Redirect时如何修改Request.Headers ["Referer"]?

c# - 如何计算 "remote desktop"共享的最小增量?

java - Autowiring 的 bean 在 setter 之外为空