【问题标题】:Find usages of static method from sub classes从子类中查找静态方法的用法
【发布时间】:2016-02-25 16:51:56
【问题描述】:

我有一个流行的基类,它有一个静态方法BaseStaticMethod(),它的行为会根据调用它的子类而改变:

SubClass1.BaseStaticMethod()SubClass2.BaseStaticMethod()不一样

然后我想查找该方法的所有用法,仅用于特定子类(例如 SubClass2.BasicStaticMethod()

我不能对SubClass2.BasicStaticMethod() 进行文本搜索,因为有时会在没有子类标识符的情况下调用它,它会丢失一些用法。

有没有办法在 Visual Studio 中使用 ReSharper 实现这一点?

internal class Program
{
    private static void Main()
    {
        Derived1.Create();
        Derived2.Create();

        new Derived1().Save();
        new Derived2().Save();
    }
}

internal class Base<T> where T : new()
{
    public static T Create() => new T();

    public void Save() { }
}

internal class Derived1 : Base<Derived1> { }
internal class Derived2 : Base<Derived2> { }

【问题讨论】:

    标签: c# visual-studio resharper


    【解决方案1】:

    试试Advanced Find Usages,它显示了一个对话框,您可以使用它来更改范围和目标 - 例如方法,您可以在例如接口或基类。我不确定它如何与静态方法一起使用,因为它们实际上并没有被覆盖。

    或者,重命名基类方法,查找用法并将其重命名。

    【讨论】:

    • 不幸的是,它的设计真的很糟糕,高级查找用法不起作用,继承者没有覆盖/重新声明方法,他们只是使用基类之一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    相关资源
    最近更新 更多