2015-10-01 79 views
0

当艇员选拔的意外情况我在一些VB.Net代码如下列举:选择案例statment使用枚举

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条件,我似乎无法找出原因。

有没有人看到我失踪的一些明显的错误?

回答

1

使用逗号代替对多个Case选项使用Or语句。

Select Case weekDay 
     Case DayOfWeek.Saturday, DayOfWeek.Sunday 
      daysToAdd = 0 
     Case DayOfWeek.Thursday, DayOfWeek.Friday 
      daysToAdd = 4 
     Case Else 
      daysToAdd = 2 
    End Select 
+0

你猜对了,真棒。谢谢!我会尽快接受这个答案。 –

-1

我还没有尝试你的代码,但它看起来像一个铸造的问题,我知道VB是非常intellignt转换变量,但你应该尝试CINT()到平日转换为整数。

希望它能帮助,下面是微软文档,https://msdn.microsoft.com/es-mx/library/s2dy91zy.aspx

+0

感谢您的反馈,但是正如@ NoAlias的回答指出的那样:我不能在'Case'语句中使用'Or',而必须使用逗号。 –