使用Resharpers模式目录查找具有多于3个参数的构造函数

是否有可能在Resharper的模式目录中创建一个搜索模式,以查找具有多于3个参数的所有构造函数?
如果是这样,怎么样?
我的问题是我不知道如何告诉Resharper只有构造函数定义应该匹配。


据我所知,Resharper中的模式只能一个方法中匹配。 所以你不能匹配构造函数声明。

我只是尝试了以下模式:

new $type$($args$)

其中type是一个类型的占位符(谁会猜到?),并且至少引用3个参数。 这确实找到了至少3个参数构造函数的所有用法,但是它找不到没有使用的构造函数,最重要的是,它会找到这个:

public class MyClass : MyAbstractClass
{
    public MyClass(int foo1, int foo2) : base(foo1, foo2, 0)
    {
        // ...
    }
}

所以也许如果你认为你会有这些情况,而不是使用Resharper模式,你应该尝试使用正则表达式查找。 它可能很难,因为来想象它C#语法是相当复杂的,但你可以得到的东西...

编辑:我调整了Visual Studio正则表达式搜索构造函数声明,识别新行和至少参数(可以有可选值):

^(:b|n)*((public|internal|private|protected|static|sealed)(:b|n)+)+:i(:b|n)*((:b|n)*:i(:b|n)+:i(:b|n)*(|=(:b|n)*:a*(:b|n)*)(,(:b|n)*:i(:b|n)+:i(:b|n)*(|=(:b|n)*:a*(:b|n)*))^2(,(:b|n)*:i(:b|n)+:i(:b|n)*(|=(:b|n)*:a*(:b|n)*))*)

这很丑陋,主要是因为VS自定义正则表达式对标准 w,{2,}和?没有任何翻译。


我知道这个问题是专门针对R#6.0的,但我想为R#2016.3提供一个答案,因为我最近有同样的问题。

Resharper 2016(.3.1)


用模式搜索允许这种类型的搜索。 以下是你需要做的事情:

选择Resharper> Find> Search With Pattern

添加三个占位符:

  • args :参数占位符 - 将最小/最大值设置为要搜索的参数数量
  • 代码 :语句占位符 - 对语句数量没有限制
  • 键入 :标识符占位符 - 不输入正则表达式
  • 确保您将搜索模式设置为C#

    将模式设置为以下内容:

    public $type$($args$) 
    {
    $code$
    }
    

    根据需要设置Look In (例如解决方案)。 然后点击查找。

    你最终应该会看到一个如下所示的搜索框:

    搜索模式

    这将找到所有(公共)构造函数,它们包含您感兴趣的参数的数量。我能够成功地在几个解决方案中使用它。 作为一个额外的好处,它似乎很高兴找到具有多行参数列表的构造函数,而不仅仅是一行。

    链接地址: http://www.djcxy.com/p/53907.html

    上一篇: Find constructors with more than 3 parameters with Resharpers pattern catalogue

    下一篇: NuSoap vs PHP Soap Library. Where is getError?