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

我有一个超类,它由许多子类inheritance。 我想在这个超类中找到对某个方法的所有调用,该方法来自特定inheritance类的实例。 这可能在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添加一个“arguments”占位符。 保留所有未选中的内容 – 它将匹配任意数量的参数。 单击find应该从与Sub2匹配的任何表达式中找到对Foo所有调用。