2015-10-01 113 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',而必須使用逗號。 –