我在vb6中看到过这种代码。
Private Enum enmMain
STEP_INIT = 1
STEP_RUN = 2
STEP_SLEEP = 3
STEP_SUSPEND = 4
STEP_ERROR = 5
End Enum
Private mStep As enmMain
Select Case mStep
Case Is <= enmMain.STEP_RUN
'Do something
Case enmMain.STEP_RUN To enmMain.STEP_ERROR
'Do something
我不明白这个:
Case enmMain.STEP_RUN To enmMain.STEP_ERROR
如果满足这个条件就进入那种情况: 最新值为 STEP_RUN 当前值为 STEP_ERROR
它是如何工作的? 我在手机上发帖,写不干净。
最佳答案
表示mStep
的所有值都满足case语句介于 2 和 5 之间(含)。
因此代码中存在不精确之处。因为值 STEP_RUN
两次出现在包容性测试中(参见 <=
运算符)。哪种行为适用于 STEP_RUN
,第一个还是第二个?您需要通过了解程序的逻辑来弄明白。
关于Vb6 Case a to b in Select Case(Switch) 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57901859/