0
下面是代碼:案例AndAlso組合
Select Case ConnectionId
Case Is = 40113 AndAlso CompanyId= 88
兩者都是真實的,是的ConnectionId 40113和CompanyId是88,但代碼去否則CASE ...
請告訴我這個問題?
下面是代碼:案例AndAlso組合
Select Case ConnectionId
Case Is = 40113 AndAlso CompanyId= 88
兩者都是真實的,是的ConnectionId 40113和CompanyId是88,但代碼去否則CASE ...
請告訴我這個問題?
您應該將OPTION STRICT
設置爲ON。然後這甚至不會編譯,因爲你試圖使用Integer
作爲Boolean
,這也是你的問題的原因。 40113
將評估爲True
因此40113 AndAlso CompanyId= 88
也將評估爲True
,但ConnectionId = True
將評估爲False
。 (你知道爲什麼你應該設置STRICT
)
使用的If-Else
代替:
If ConnectionId = 40113 AndAlso CompanyId = 88 Then
' ... '
Else
' ... '
End If
一般情況下:如果你想比較多個變量使用If
- 而不是Select Case
。
一些挑剔:* 40113將評估爲False與OPTION STRICT OFF * *:這是不正確的。它將評估爲「True」,因此「40113 AndAlso CompanyId = 88」也將評估爲「True」,但「ConnectionId = True」評估爲「False」。用'Option Strict Off'來愛VB.Net! – sloth 2013-02-14 09:16:54
@DominicKexel:更正,謝謝。是的,Option Strict Off是一團糟,一種_random-programming_,你永遠不知道會發生什麼。我永遠不會關閉它,即使不是這樣的測試目的;) – 2013-02-14 09:25:46
'Option Strict Off'有它使用(Office interop),但是如果你可以在塊級別使用它,而不是在文件級別使用它。 – sloth 2013-02-14 09:40:03