2012-03-13 61 views
3

是否有可能只輸入一個類的靜態成員的第一個字母,然後(通過魔術快捷方式)完成列表中列出了所有可能的class.member條目?自動完成到其他類的成員


更詳細的解釋:

我有15個班的形式:

class AClass 
{ 
    public static readonly string Volumeclass = "abcd"; 
    //... other members 
} 

class AnotherClass 
{ 
    public static readonly string Volumeclass = "xyz"; 
    //... other members 
} 

當我想訪問這些成員我想鍵入Volumeclass,並希望得到的名單:

  • AClass.Volumeclass
  • AnotherClass.Volume class

by intelligence。所以我只需要選擇正確的符號,而不是記住正確的類名。

我試過智能完成,但它沒有以這種方式工作。

+0

我不這麼認爲。不知道更多關於你的項目或爲什麼你需要像這樣構造它,很難知道另一種方法是否更加可行 - 例如Enum或者Constants-only參考類。 – 2012-03-13 14:13:53

+0

這些類是嵌套的嗎?如果是的話,你可以嘗試反思。 – Vinicius 2012-03-13 14:14:23

+0

我不能說我知道這樣的功能(ReSharper *在使用Go To Member時有這方面的知識)。也許你可以[向ReSharper建議](http://youtrack.jetbrains.com/issues/RSRP)作爲一種新的完成類型? – 2012-03-13 14:18:30

回答

3

我不能說我知道這樣的捷徑。顯然,如果你使用轉到符號導航(IntelliJ:按Ctrl-Shift + Alt鍵-T或Visual Studio:按Ctrl-Shift + Alt鍵-T),你可以在你的代碼中所有VolumeClass屬性的列表:

http://i.imgur.com/YP7nd.png

但這不是你想要的。我可以建議的最接近的是使用Import Symbol完成(Ctrl - Alt - Space),然後鍵入類型的第一個字母。它將顯示所有全局可用的類型,並在需要時導入相應的using指令。

編輯另一個想法是與ReSharper的動態模板,將允許您根據前幾個字母,生成的語句生成這個:

  1. 前往ReSharper的 - 模板資源管理器(在ReSharper的6)
  2. 動態模板選項卡,單擊新模板按鈕
  3. 給一個名稱爲您的快捷方式,例如,vc。或者,寫一個描述。
  4. 在主文本區域,類型:$prefix$.Volumeclass
  5. 保存並退出模板資源管理器

現在你可以輸入你的代碼vc,然後具有屬性的類的名稱。

希望有所幫助。

+0

好的。你的意思是*轉到符號*導航,如截圖所示,對不對?這至少是一個很好的解決方法,因爲我得到了所有可能的類的列表。然後我按* ESC *,然後輸入記住的班級名稱。 – brgerner 2012-03-13 14:27:38

+0

嗯,當然,對不起,我會修復答案!謝謝 :) – 2012-03-13 14:28:31

0

你必須輸入類名頭

AClass.<now the list of static members appears> 

注意,有幾十.NET框架類庫數千類。你想讓數百萬成員自動出現嗎?

1

您可以將這些類放入一個公共命名空間。然後,在命名空間名稱後面鍵入點後,將彈出類的列表。但是,選擇課程後,您仍然需要添加Volumeclass屬性。

我不會爲了這個目的重構命名空間層次結構,但如果這些類在邏輯上應該組合在一起,它可能是一個不錯的選擇。如果命名空間名稱很長,您可以選擇添加一個using alias directive(例如,using Prods = MyCompany.MyProject.Products;