我在一些VB.Net代码中有以下枚举:
Private Enum DayOfWeek
Sunday = 1
Monday = 2
Tuesday = 3
Wednesday = 4
Thursday = 5
Friday = 6
Saturday = 7
End Enum
我稍后会发出以下Select Case
声明:
Dim weekDay As DayOfWeek
weekDay = DatePart(DateInterval.Weekday, Now)
Dim daysToAdd As Integer
Select Case weekDay
Case DayOfWeek.Saturday Or DayOfWeek.Sunday
daysToAdd = 0
Case DayOfWeek.Thursday Or DayOfWeek.Friday
daysToAdd = 4
Case Else
daysToAdd = 2
End Select
因此,当我运行代码时,weekDay
设置为今天(星期四)的正确值(5)。但是,当它到达Select Case
语句时,它会继续选择Case Else
条件而不是DayOfWeek.Thursday
条件,而我似乎无法弄清楚原因。
有没有人看到我错过的一些明显的错误?
答案 0 :(得分:1)
不使用Or语句用于多个Case选项,而是使用逗号。
Select Case weekDay
Case DayOfWeek.Saturday, DayOfWeek.Sunday
daysToAdd = 0
Case DayOfWeek.Thursday, DayOfWeek.Friday
daysToAdd = 4
Case Else
daysToAdd = 2
End Select
答案 1 :(得分:-1)
我还没有尝试过您的代码,但它看起来像是一个转换问题,我知道VB非常智能地转换变量,但您应该尝试使用cInt()将weekDay转换为整数。
希望它有所帮助,这里有Microsoft Doc,https://msdn.microsoft.com/es-mx/library/s2dy91zy.aspx