如果可能的话,我想要一个更清晰的模式来检测未处理的 IDisposables。如果我有方法
IDisposable Subscribe(...){....}
并在不分配和使用 IDisposable 的情况下调用它,我想被告知它。我尝试了以下模式
;$expr$;
哪里expr
是类型IDisposable
。发生以下情况。
第一个被正确检测到,但第二个是错误,因为对现有变量的简单赋值也是 C# 中的表达式,而使用赋值var
不是。是否可以检测到返回值是通过结构搜索分配的?
我注意到 resharper 具有以下代码质量选项
但我猜它们是用比结构搜索解析器更复杂的东西构建的。