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

本文关键字:继承 方法 用法 查找 子类 | 更新日期: 2023-09-27 18:34:24

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

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

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