如何忽略 ReSharper 中未分配的新内容?
Posted
技术标签:
【中文标题】如何忽略 ReSharper 中未分配的新内容?【英文标题】:How to ignore unassigned new in ReSharper? 【发布时间】:2019-01-21 02:42:45 【问题描述】:(使用 ReSharper Ultimate 2017.1.3。)
在我的代码中我有这样的东西:
new someClass(null);
它没有分配给任何变量,它应该保持这样。 (它可能看起来很奇怪,但它用于特定的测试用例。)
ReSharper 警告说:
'new' 表达式创建的可能未分配对象
菜单不建议自动写评论,所以我正在寻找语法。
什么是 ReSharper 注释可以忽略这个?
经过一番搜索,我已经尝试过:
// ReSharper disable once
// ReSharper disable once UnassignedField
// ReSharper disable once UnassignedField.Compiler
【问题讨论】:
"它没有分配给任何变量,它应该保持这样。" - 实际上,我将在这里支持 resharper ......听起来你以非常不恰当的方式使用构造函数,坦率地说应该改变。 顺便说一句;使工具对“未使用”值感到满意的另一个常见技巧是:GC.KeepAlive(your statement);
- 这实际上并没有让任何东西“活着” - 它只是一个故意不透明的方法,它执行 pop
它在一个测试用例中测试构造函数在给定 null 参数时返回 ArgumentNullException。否则,我不决定公司的代码语法和做法。 (只是添加了我在原始帖子中忘记的“null”参数)
在生产代码中,我很难找到这样做的充分理由,但对于 Assert.Throws(()=>new富(空));您可以将它分配给一个变量,但它会抱怨一个未使用的变量。
【参考方案1】:
如果将此行直接放在未分配的新行上方,则可以禁用一次警告。
// ReSharper disable once ObjectCreationAsStatement
【讨论】:
感谢您的建设性批评。 没问题。我尝试以积极的方式写作,并为他人着想。 :) 祝你好运。以上是关于如何忽略 ReSharper 中未分配的新内容?的主要内容,如果未能解决你的问题,请参考以下文章
一个可能的 Resharper 错误还是我只是错过了一些微妙的东西?