Visual Studio 2008 intellisense用于枚举类型

时间:2009-10-07 14:45:11

标签: visual-studio-2008

是否有一个设置,即Visual Studio中的intellisense还会在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 '!@#@%@#!'
  Case Else
    Return phrase
End Select
End Function

现在,在代码中我有一些设置_emphasisFromCode(显然)然后我想调用该函数。那么当我开始输入Speak(“HelloWorld”,...)时会发生什么 在那里的elipses,我不喜欢intellisense。在intellisense中弹出的唯一内容是所有枚举的列表。

现在我花了不成比例的时间来解释这个问题,关于我实际关心的程度。但是,我的机器今天编译速度非常慢。

2 个答案:

答案 0 :(得分:1)

不,没有这样的设定。 Intellisense列出了枚举,以便您快速选择一个。如果您有一个存储在变量中(或多个PhraseEmphasis类型的变量),它将不会搜索您的代码以匹配参数类型的变量以填充参数建议。

除此之外,唯一相关的设置是启用/禁用智能感知:

visual studio options

VB在Basic下有其他选项 - > VB具体,但仍然没有任何建议。

据我所知,我不认为CodeRush / Refactor! Pro或ReSharper(Visual Studio加载项)也提供此功能。

答案 1 :(得分:1)

不,没有这样的设置。当签名完全相反时,IntelliSense如何从您的方法签名中猜测您想要为该方法添加任意值?

相反,您可以声明另一个枚举成员(比如PhraseEmphasis.None = 0,这是建议的最佳做法)并使用它,或最终使用emphasis关键字声明optional参数以避免需要完全提供它。