2016-11-17 67 views
1

EDIT3使用指令參考:問題重寫,以供將來參考,這要歸功於BahJiy檢查在Visual Studio

有一個Visual Studio(或ReSharper的),如「查找用法」命令來查找使用指令類的用法?


查找用法只顯示名稱空間本身的引用(因此是「唯一用法」,如下圖所示)。

Find Usages on using directive returns "This is the only usage"

當我註釋掉using System.Reactive.Linq線按下面,Observable表明它不存在於當前上下文存在一個錯誤。

enter image description here

註釋掉using指令,檢查錯誤,如上述,有沒有比檢查一個錯誤,一個更好的辦法?


答:查找用法確實它,光標位置重要

作爲答案的評論如下所述,光標位置必須在using,而不是命名空間。

enter image description here



老問題,身體
是否有一個Visual Studio(或ReSharper的)命令,告訴我哪些方法是從 SomeNamespace.SomeClass未來中使用文件由 using SomeNamespace.SomeClass定義?

我想檢查用例,當我遇到一些意外的命名空間。
查找使用指令或所有使用指令中的引用僅顯示其他指令。

我可以刪除非常using指令,並檢查該文件中的錯誤,但我一定是無知的一個更好的辦法...


編輯+ EDIT2
一個例子可以幫助更好地澄清情況。

SomeClass.cs

namespace SomeNamespace { 
    public static class SomeClass { 
     public static string SomeExtensionMethod(this string s){ 
      // some implementation 
     } 
     /* 
      More extension methods 
     */ 
    } 
} 

消費者。CS

using SomeNamespace.SomeClass 

namespace OtherNamespace { 
    public class Consumer { 
     public void Consume(){ 
      string id = "someid"; 
      string after = id.SomeExtensionMethod; 
     } 
     /* 
      More extension methods from SomeClass used 
     */ 
    } 
} 

的問題是,當我發現一些 Consumerusing SomeNamespace.SomeClass,什麼檢查其中使用的基本方法的最佳方法是什麼?
是否有類似於查找用法的命令來獲取 SomeNamespace.SomeClassConsumer類下的所有方法?

+0

所有的視覺工作室都具有該功能,只需將鼠標指向該方法,您就會知道該方法來自哪個類 –

+0

是的,懸停在方法上會告訴我哪個它來自它的類,但不是當懸停在using指令上時的另一種方式。如果我可以檢查文件中的哪些方法來自'使用SomeNamespace.SomeClass',這將非常有用。 – Ryota

+0

實際上,你可以..如果它是一個DLL,你可以檢查解決方案資源管理器,在參考下,雙擊它,它會顯示該指令 –

回答

0

通常只需檢查您的使用。 Visual Studio只允許來自一個名稱空間的方法/類調用。如果在您使用的Namespace的多個名稱空間中還有另外兩個相同名稱的方法,Visual Studio將強制您在您的調用中指定Namespace說明。

using Name1; 
using Name2; 

namespace Class1 { 
    class Testing { 
     public Testing { 
      // this method only exists in Name1 
      Method1 (); 
      // this method exist in both Name1 and Name2 
      Name1.Method2 (); 
      Name2.Method2 (); 
     } 
    } 
} 

所以,如果你只看到

using SomeNamespace; 

你就會知道,可能來自該命名空間中的類從SomeNamespace是特別。 如果存在另一個同名的類,但也在不同的名稱空間中,Visual Studio將強制您在調用時鍵入該名稱空間。

所以,如果你看到你usings是正常的,沒有隨機

RandomNamespace.Class1 class1 = new RandomNamespace.Class1 (); 

你肯定知道,沒有什麼是不尋常的。

+0

如果問題不明確,我很抱歉。我不是在談論具有相同名稱的多個方法 - 也不是關於任何類或方法的實現。爲了讓我的問題更具有一定的上下文,我正在設法理解特定類「SomeNamespace.SomeClass」的用例,它恰好出現在我的隊友編寫的其他代碼中。如果班級定義了數十種方法,但需要進行大量的重構工作,則會變得更加麻煩。希望它能更好地闡明我的問題。 – Ryota

+0

我想我有點理解你的問題。我認爲這可能有所幫助 – BahJiy

+1

它幾乎可以說將光標放在要查找引用的using語句上並使用Find Usage。 http://stackoverflow.com/questions/16405461/how-can-i-find-all-usages-of-a-namespace-and-its-members – BahJiy

0

你想知道是否需要導入的名稱空間被導入,因爲來自該名稱空間的類型被使用?如果它看到插件「生產力動力工具」,例如有一個選項可以刪除和排序使用保存

+0

是的,有點。我確實使用生產力電動工具,它一直很高興與它合作。我所追求的並不完全是它所提供的 - 我知道這些使用是絕對使用的,因此無法刪除,但沒有快速查看它在使用文件中的使用位置。 – Ryota

相關問題