检测可能的 NullReferenceException
空值检查是 .NET 开发中最常见的操作之一。 ReSharper 是一个非常重视空值检查的工具,通过为可能为空的实体提供特殊支持来帮助开发者。
ReSharper 首先会检测到可能发生 NullReferenceException 的情况。 例如,假设我们尝试访问一个 XML 属性的值,而没有先检查它是否存在:
由于以这种方式访问 值 并不安全,ReSharper 会对其进行下划线标记,并在将鼠标移到该位置时显示以下弹出窗口。

将光标放在标识符上并按下 Alt+Enter ,您将看到一个 快速修复 ,允许您自动对变量进行空值检查:

ReSharper 进行的大部分空值检查是通过 代码注解 实现的,这些注解以两种方式工作:
首先,我们为 .NET FCL 和 NUnit 中的大量符号添加了 外部注解 属性注解,这些注解包含在 ReSharper 安装中。 例如,上述示例中的 特性 方法通过 CanBeNullAttribute 以这种方式进行了注解。
这是另一个外部注解方法的示例:如果我们尝试使用空参数创建一个 Uri ,会收到以下弹出消息:

当然,您可以在 您自己的代码中 使用这些属性,没有任何限制。 有几种方法可以将这些属性添加到您的项目中:
推荐的方法是安装包含
JetBrains.Annotations程序集的 NuGet 包。实际上,您甚至不需要访问 NuGet 网站来获取该包。 只需添加
using JetBrains.Annotations;指令,并使用相应的 Alt+Enter 操作即可自动获取该包。
您可以 添加项目引用到 JetBrains.Annotations.dll ,您可以在 ReSharper 安装目录中找到它。
您还可以 嵌入属性声明到项目中的任何位置,使用默认的
JetBrains.Annotations命名空间或其他命名空间。
现在,您可以使用这些属性装饰您自己的方法参数,ReSharper 会识别它们:
