我怎么能告诉ReSharper我正在使用Debug.Assert的包装器来避免空引用警告?

时间:2017-02-24 10:28:05

标签: c# resharper

所以我以前在我的代码周围都有Debug.Assert,但现在我创建了一个DebugHelper.Assert,它本身有一些日志记录和一个Debug.Assert但现在我得到了100万警告某事可以为空。

我可以告诉ReSharper,DebugHelper.AssertDebug.Assert是否相同,从而摆脱了警告?

编辑: 我真的希望(也许必须)避免为此项目添加另一个依赖项。

1 个答案:

答案 0 :(得分:3)

您想要为DebugHelper.Assert方法添加属性。您可以在项目中引用JetBrains.Annotations包,并添加一个Contract断言,如:

[ContractAnnotation("condition:false => halt")]
public void Assert(bool condition)
{
  // ...
}

这告诉ReSharper如果condition参数为false,则该方法将停止。这就是ReSharper如何注释标准Debug.Assert方法(尽管通过"外部"注释在xml文件中,而不是在代码中内联)。

您还可以将JetBrains.Annotations包标记为开发时间依赖项 - 属性是有条件的,默认情况下不会编译为生成的二进制文件。 this blog post中的更多详细信息。