2016-03-08 51 views
3

按照標題,我如何找到方法的用法處理對於Processor<int>而不是Processor<string>查找具有特定約束的通用類的用法

internal class Program 
{ 
    private static void Main() 
    { 
     var processorInt = new Processor<int>(); 
     var processorString = new Processor<string>(); 

     processorInt.Process(); 
     processorString.Process(); 
    } 
} 

internal class Processor<T> 
{ 
    public void Process() => Console.WriteLine(typeof(T).Name); 
} 
+0

您正在尋找沒有ReSharper的解決方案,我想? (因爲它與R#非常直接) –

+0

我使用ReSharper,所以也是一個很好的答案。 – user4388177

回答

1

您不能使用標準工具。

你要麼必須:

  1. 按下Ctrl鍵+ķ按Ctrl +[R找到所有引用Processor<T>
  2. 你自己通過Processor<int>視覺篩選。

或者:

查找Processor<int>所有使用文本搜索。如果您也有SomeOtherProcessor<int>,這也不是很有用,因爲這也會匹配。

這是我想出的唯一選擇。其他開發人員工具(如Resharper)可能會有更好的選項。

+0

對不起,我不清楚這個問題,這是一個很好的答案,但我正在尋找方法Process()的用法。 – user4388177

+0

或多或少一樣。沒有簡單的方法來做到這一點。 –

+0

它不是一個真正的解決方案,因爲在查找選項卡中,您只能看到變量的名稱。 – user4388177

0

我擔心實現這一目標的唯一方法是直接在搜索和替換工具中搜索Processor<int>()。雖然很煩人。但是,如果泛型類具有通用接口參數而不是結構或類,則這不會對ypu有很大幫助。因此,如果您對使用該接口的通用參數的所有Processor的出現感興趣,則無法搜索Processor<MyInterface>()的用法。

1

ReSharper可以處理這個開箱即用。如果您嘗試執行搜索引用,它實際上會詢問您想要查找的內容。只需聲明您想要查找的類型的虛擬變量,然後致電查找用法,,其類型名稱爲

Find Usages

需要注意的是這個工程的泛型類和泛型方法,但它不會幫助你,如果你正在尋找與給定類型參數的泛型類方法的用法。

Generic method example

或者只是使用右鍵單擊 - >查找用法先進

Find Usages Advanced

+0

這是一個非常不錯的功能! –

+1

這適用於班級,不適用於該方法。但這是一個很好的功能。 –

+0

@Uno這是正確的,謝謝你指出。我補充說,答案。 –