2009-10-07 81 views
2

是否有一個設置,在Visual Studio中的intellisense也將變量放入intellisense彈出窗口而不僅僅是枚舉類型的值?它顯然知道它應該是一個枚舉。也許這只是一種機制,可以防止我在那裏放置可能導致異常的東西。Visual Studio 2008 intellisense枚舉類型

考慮以下設置:(這是一個有點做作,我很抱歉。)現在

Public Enum PhraseEmphasis 
    Monotone = 0 
    Question 
    Statement 
    Exclamation 
    CrazyExclamation 
    QuestioningExclamation 
    Cursing 
End Enum 

Private _emphasisFromCode as PhraseEmphasis 

Public Function Speak(ByVal phrase As String, ByVal emphasis As PhraseEmphasis) as String 
Select Case emphasis 
    Case PhraseEmphasis.Question 
    Return phrase + '?' 
    Case PhraseEmphasis.Statement 
    Return phrase + '.' 
    Case PhraseEmphasis.Exclamation 
    Return phrase + '!' 
    Case PhraseEmphasis.CrazyExclamation 
    Return phrase + '!!!1!eleven!!' 
    Case PhraseEmphasis.QuestioningExclamation 
    Return phrase + '?!' 
    Case PhraseEmphasis.Cursing 
    Return '[email protected]#@%@#!' 
    Case Else 
    Return phrase 
End Select 
End Function 

,在代碼中我有一些設置_emphasisFromCode(明顯),然後我想調用該函數。然後,當我開始在Elipses處打字說話時(「HelloWorld」,...) ,我不喜歡intellisense。在intellisense中唯一彈出的是所有枚舉的列表。

現在我花了很多時間來解釋這個問題,關於我真正關心的事情。但是,我的機器今天編譯非常慢。

+0

我真的不明白你的問題。你能否詳細解釋一下? – 2009-10-07 14:59:08

回答

1

不,沒有這樣的設置。智能感知列舉了枚舉,以便您快速選擇一個。如果你有一個存儲在變量中的變量(或者PhraseEmphasis類型的多個變量),它將不會爲你的代碼尋找匹配參數類型的變量來填充參數建議。

除此之外,只有相關的設置,以啓用/禁用智能感知:

visual studio options http://i38.tinypic.com/24e4bht.jpg

VB已經基本下的其他選項 - 你有什麼建議> VB具體,但仍然一無所獲。

據我所知,我不認爲CodeRush/Refactor! Pro或ReSharper(Visual Studio加載項)也提供此功能。

1

不,沒有這樣的設置。智能感知如何從您的方法簽名中猜測,您希望爲方法賦予一個任意值,而簽名恰恰相反?

相反,你可以聲明另一個枚舉成員(比如PhraseEmphasis.None = 0,這是推薦的最佳做法反正)和使用,或最終聲明emphasis參數與optional關鍵字完全避免提供信息的需要。

+0

枚舉類型的變量不是任意值。我希望看到這種類型的枚舉也在列表中。 – 2009-10-14 15:35:49

+0

這將與枚舉概念相矛盾。枚舉是一個_type_,它由一組具有基礎基本類型的具體值組成。因此,除了列舉這個枚舉的值之外,其他所有內容都不符合強類型編程語言的概念...... – 2009-10-15 07:37:01