2016-02-23 27 views
0

我有有一個靜態方法BaseStaticMethod()及其行爲的變化取決於從中調用它的子類流行的基類查找靜態方法的用法:從子類

SubClass1.BaseStaticMethod()是不一樣的SubClass2.BaseStaticMethod()

我會再找個方法只是針對特定的子類的所有用途(EG SubClass2.BasicStaticMethod()

我cannod做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> { } 

回答

0

嘗試Advanced Find Usages,這表明你可以用它來改變範圍的對話,也是目標 - 例如方法,你可以如選擇接口或基類。我不確定它如何與靜態方法一起工作,因爲它們實際上不是覆蓋。

或者,重命名基類方法,找到用法並重新命名。

+0

不幸的是,它設計的很糟糕,Advanced Find Usages不起作用,並且繼承者不覆蓋/重新聲明方法,他們只是使用基類。 – user4388177