告诉 Resharper 一个 lambda 参数不为空
Posted
技术标签:
【中文标题】告诉 Resharper 一个 lambda 参数不为空【英文标题】:Tell Resharper that a lambda argument is not null 【发布时间】:2015-02-11 11:36:33 【问题描述】:我有这样的方法:
void Foo(object x, Action<object> f)
if (x != null)
f (x);
我想这样使用它:
void Bar ()
Foo ("baz", g => g.ToString());
Foo (null, g => g.ToString());
但 Resharper 抱怨 lambda 中的 g 可能为空。是否可以注释方法告诉 Resharper g 永远不会为空?
【问题讨论】:
我没有收到来自 Resharper 的警告。我必须把它关掉,因为它会很烦人。我会看看我是否能弄清楚哪个设置可以处理这个问题。 您必须启用悲观检查器 我也没有收到任何警告,我没有关闭任何东西 @Aswartha 您必须明确启用更严格的空值检查 现在有一个功能请求:youtrack.jetbrains.com/issue/RSRP-429178 【参考方案1】:使用 ReSharper,当您处于可以改进的行时,代码编辑器的左侧应该会出现一个黄色灯泡,如果您单击它,会有一个“Inspection:...”选项,请单击它,然后点击Disable once with comment
,评论如下:
// ReSharper 禁用一次 ...
应该出现在该行之前。您可以找到具体说明“它不会为空”的艰难方法,或者只是让它忽略问题。我希望它有所帮助。
编辑:我想说我使用的是许可 ReSharper 9,只是为了指定。
【讨论】:
以上是关于告诉 Resharper 一个 lambda 参数不为空的主要内容,如果未能解决你的问题,请参考以下文章
ReSharper 为 lambda 表达式中的变量名提供“@”前缀