VB6 IDE меняет регистр имен моих перечислений - PullRequest
5 голосов
/ 24 июня 2009

Мне необходимо поддерживать несколько приложений VB6, и я столкнулся со странной проблемой, когда дело доходит до имен перечислений. Предполагается, что Intellisense в VB6 будет работать так: если имя моей переменной определено, например, как Dim Abraxis как String, и я набираю abraxis во время кодирования, IDE меняет его на Abraxis на лету, когда я оставляю слово. Тем не менее, я обнаружил, что если у меня настроено перечисление, например:

Public Enum tiErrorEnum
  tiNone = 0
  tiWarning
  tiError
  tiDupDoc
End Enum

и я использую одно из перечислений в выражении, например

ErrorNum = tinone

ожидая, что корпус будет исправлен IDE, он не меняет тинон на tiNone, но он меняет определение элемента enum на tinone! Точно назад!

Есть ли обходной путь?

Ответы [ 3 ]

13 голосов
/ 24 июня 2009

Да, есть. Это выглядит странно, и вы, вероятно, захотите прокомментировать, почему вы делаете это в своем коде, чтобы будущие разработчики не были озадачены, но вот что вы хотите сделать. Добавьте перечисления как открытые элементы в блок кода директивы компилятора (так что компилятор, конечно, его не увидит). Вы должны сделать это предпочтительно прямо под объявлением перечисления, как это:

Public Enum tiErrorEnum
  tiNone = 0
  tiWarning
  tiError
  tiDupDoc
End Enum
#If False Then
  Public tiNone
  Public tiWarning
  Public tiError
  Public tiDupDoc
#End If

Simple. Среда IDE будет правильно распознавать и хранить имена перечислений, а компилятор будет игнорировать блок.

1 голос
/ 11 июля 2009

Хитрость заключается в том, чтобы всегда квалифицировать ваши перечисления:

tiErrorEnum.tiDupDoc

Intellisense будет правильно перечислить перечисление после нажатия точки. Я думаю, что это также поможет читабельности кода, если вы перечислите правильно.

1 голос
/ 24 июня 2009

Это ошибка в редакторе. Кажется, я помню, что если вы введете имя перечисления, а не используете intellisense, это изменит регистр имени значения перечисления в объявлении.

...