我需要维护一些VB6应用程序,而且在枚举名称方面我遇到了一个奇怪的问题。 VB6中Intellisense应该工作的方式是,如果我的变量名被定义为,例如,Dim Abraxis为String,并且我在编码时键入abraxis,IDE会在离开时将其更改为Abraxis。但是,我发现如果我有这样的枚举设置,例如:
Public Enum tiErrorEnum
tiNone = 0
tiWarning
tiError
tiDupDoc
End Enum
我在一个语句中使用其中一个枚举,例如
ErrorNum = tinone
期望通过IDE修复外壳,它不会将tinone更改为tiNone,但它确实会将enum成员的def更改为tinone!完全倒退!
有解决方法吗?
答案 0 :(得分:13)
是的,有。这有点奇怪,你可能想评论为什么你在你的代码中这样做,所以未来的开发人员不会为此感到困惑,但这就是你想要做的。在编译器指令代码块中添加枚举作为公共项(当然,编译器无法看到它)。您最好在枚举声明的正下方执行此操作,如下所示:
Public Enum tiErrorEnum
tiNone = 0
tiWarning
tiError
tiDupDoc
End Enum
#If False Then
Public tiNone
Public tiWarning
Public tiError
Public tiDupDoc
#End If
简单。 IDE将正确识别并保存枚举名称,编译器将忽略该块。
答案 1 :(得分:1)
这是编辑器中的错误。我似乎记得,如果你键入枚举的名称而不是使用intellisense,它会改变声明中枚举值名称的大小。
答案 2 :(得分:1)
诀窍是始终限定您的枚举:
tiErrorEnum.tiDupDoc
然后Intellisense将在按下dot后正确列出枚举。我认为如果您的枚举名称很好,这也将有助于代码可读性。