Visual Studio 2008 intellisense для типа перечисления - PullRequest
2 голосов
/ 07 октября 2009

Есть ли параметр, при котором intellisense в Visual Studio будет также помещать переменные во всплывающем окне 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», ...) там я не люблю интеллигентность. Единственное, что выскакивает в intellisense - это список всех перечислений.

И теперь я потратил непропорционально много времени, объясняя это тем, насколько мне на самом деле все равно. Тем не менее, моя машина очень медленно компилируется сегодня.

Ответы [ 2 ]

1 голос
/ 08 октября 2009

Нет, такой настройки нет. Как IntelliSense мог догадаться по сигнатуре вашего метода, что вы хотите присвоить методу произвольное значение, если сигнатура прямо противоположна?

Вместо этого вы можете объявить другого члена enum (скажем, PhraseEmphasis.None = 0, который в любом случае рекомендуется) и использовать его, или в конечном итоге объявить параметр emphasis с ключевым словом optional, чтобы избежать необходимости его полного предоставления. .

1 голос
/ 08 октября 2009

Нет, такой настройки нет. Intellisense перечисляет перечисление, чтобы вы могли быстро выбрать его. Если он хранится в переменной (или нескольких переменных типа PhraseEmphasis), он не будет проверять ваш код на предмет соответствия переменных типа параметра, чтобы заполнить предложения параметров.

Кроме этого, единственными связанными настройками являются включение / отключение Intellisense:

visual studio options

VB имеет дополнительные опции в разделе Basic -> VB Specific, но все равно ничего для того, что вы предлагаете.

Насколько я знаю, я не думаю, что CodeRush / Refactor! Pro или ReSharper (надстройки для Visual Studio) также предлагают эту функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...