C# Resharper搜索模式,用于检测返回未使用值的方法

C# Resharper搜索模式,用于检测返回未使用值的方法,c#,resharper,structural-search,C#,Resharper,Structural Search,如果可能的话,我想要一个重竖琴模式来检测未处理的IDisPobles。如果我有办法 IDisposable Subscribe(...){....} 在不分配和使用IDisposable的情况下调用它,我希望别人告诉我。我尝试了以下模式 ;$expr$; 其中expr的类型为IDisposable。发生了以下情况 第一个是正确检测到的,但第二个是错误的,因为对现有变量的简单赋值也是C#,而使用var的赋值则不是。是否可以通过结构搜索来检测返回值的分配 我注意到resharper有以下代码

如果可能的话,我想要一个重竖琴模式来检测未处理的IDisPobles。如果我有办法

 IDisposable Subscribe(...){....}
在不分配和使用IDisposable的情况下调用它,我希望别人告诉我。我尝试了以下模式

;$expr$;
其中
expr
的类型为
IDisposable
。发生了以下情况

第一个是正确检测到的,但第二个是错误的,因为对现有变量的简单赋值也是C#,而使用
var
的赋值则不是。是否可以通过结构搜索来检测返回值的分配

我注意到resharper有以下代码质量选项


但是我猜它们是用比结构化搜索解析器更复杂的东西构建的。

不幸的是,这不能用结构化搜索和替换来完成。首先,没有构造可以匹配缺少的内容,因此无法匹配没有返回值赋值的方法调用


正如您所注意到的,有一些检查跟踪不使用返回值的纯函数,并且它们不使用SSR实现。您可以通过对它们应用
[Pure]
属性,使它们应用于您的方法。然而,这意味着该方法实际上是纯的,即没有副作用,因此在本例中可能是错误的语义。

那么,问题是什么?resharper的搜索模式是什么?这就是问题所在。没必要淘气。