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

时间:2014-12-17 08:58:46

标签: c# visual-studio visual-studio-2012 resharper

我有一个由许多子类继承的超类。我想在这个超类中找到对某个方法的所有调用,该方法来自特定继承类的实例。这在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);
    }
}

我想在上面的例子中只找到sub2.foo(b)而不是sub1.foo(a)的电话。

1 个答案:

答案 0 :(得分:3)

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