仅从特定的子类中查找继承方法的用法?

Pol*_*hix 7 c# resharper visual-studio visual-studio-2012

我有一个超类,它由许多子类继承.我想在这个超类中找到对某个方法的所有调用,该方法来自特定继承类的实例.这在VS2012中是否可行(使用Resharper 7.1)?

代码示例:

public class Super
{
    public void foo(Arg a)
    {
        ...
    }
}

public class Sub1 : Super
{
    ...
}

public class Sub2 : Super
{
    ...
}

public class SomeClass
{
    public void Run()
    {
        ...
        var sub1 = new Sub1();
        sub1.foo(a);

        var sub2 = new Sub2();
        sub2.foo(b);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想只找到上面例子中sub2.foo(b)没有的电话sub1.foo(a).

cit*_*att 4

您应该能够使用结构搜索和替换来设置模式来查找用法。转到 ReSharper -> 查找 -> 使用模式搜索。创建一个模式,例如$exp$.Foo($args$). 然后添加一个“表达式”占位符exp。您可以指定这应该是什么类型,并选中复选框以指定确切的类型。您可以在此处输入完全限定类型All.Your.Namespaces.Sub2。然后添加一个“参数”占位符args。不选中所有内容 - 它将匹配任意数量的参数。单击“查找”应该找到Foo来自任何匹配的表达式的所有调用Sub2