使用select enum变量会导致编译器检测到错误吗? VB6

时间:2011-09-21 18:14:44

标签: select vb6 enums

在这种情况下,会发生什么?编译器会看到错误还是未检测到?或者甚至会导致错误?我应该期望使用像这样的选择行为?

enum Age  
over18 = 19  
under18 = 17  
end enum  
...  
...  
Dim myAge As Age

Select case myAge  
case over18   
...  
case under18 
...
End Select

感谢您的帮助

2 个答案:

答案 0 :(得分:4)

我还没有测试过,但我认为你的代码会没问题。

变量myAge可以设置为over18under18,然后select语句将根据变量的值选择合适的分支。

编译器不应该关心你的枚举名称与你分配给它们的值不对应,你的代码可能会让那些试图在将来维护它的人感到困惑。

答案 1 :(得分:2)

我是第二个ipr101的答案,但请注意,VB并不神奇地知道under18枚举值应匹配小于18的任何值,因此您需要检查0到18。

Select case myAge   
case over18 to 999
...   
case 0 to under18  
... 
End Select 

这也意味着它不再适合枚举和选择案例结构,因此普通If更适合。