在这种情况下,会发生什么?编译器会看到错误还是未检测到?或者甚至会导致错误?我应该期望使用像这样的选择行为?
enum Age
over18 = 19
under18 = 17
end enum
...
...
Dim myAge As Age
Select case myAge
case over18
...
case under18
...
End Select
感谢您的帮助
答案 0 :(得分:4)
我还没有测试过,但我认为你的代码会没问题。
变量myAge
可以设置为over18
或under18
,然后select语句将根据变量的值选择合适的分支。
编译器不应该关心你的枚举名称与你分配给它们的值不对应,你的代码可能会让那些试图在将来维护它的人感到困惑。
答案 1 :(得分:2)
我是第二个ipr101的答案,但请注意,VB并不神奇地知道under18
枚举值应匹配小于18的任何值,因此您需要检查0到18。
Select case myAge
case over18 to 999
...
case 0 to under18
...
End Select
这也意味着它不再适合枚举和选择案例结构,因此普通If
更适合。