我有一个由许多子类继承的超类。我想在这个超类中找到对某个方法的所有调用,该方法来自特定继承类的实例。这在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)
的电话。
答案 0 :(得分:3)
您应该能够使用结构搜索和替换来设置模式以查找用法。转到ReSharper - >查找 - >用图案搜索。创建$exp$.Foo($args$)
等模式。然后为exp
添加“表达式”占位符。您可以指定此类型,并选中复选框以指定确切类型。在这里,您输入完全限定类型All.Your.Namespaces.Sub2
。然后为args
添加“参数”占位符。保留所有未选中的内容 - 它将匹配任意数量的参数。单击查找应该从与Foo
匹配的任何表达式中找到对Sub2
的所有调用。