2017-03-08 57 views
0

我有這樣的事情:邏輯不會去第二elseif的

If Not String.IsNullOrWhiteSpace(selectedBeginDate) AndAlso someMoreConditionsHere Then 
     If somethingElse Then 
      ' Do some work here 
     End If 
    ElseIf String.IsNullOrWhiteSpace(selectedBeginDate) Then 
     cell.IsEnabled = False 
    ElseIf Not String.IsNullOrWhiteSpace(selectedBeginDate) Then 
     cell.IsEnabled = True 
    End If 

在調試時If somethingElse Then不改正它正確地去

ElseIf String.IsNullOrWhiteSpace(selectedBeginDate) Then 

其正確不往裏走因爲selectedBeginDate確實有價值,但我期待它去ElseIf但它跳過它!

爲什麼?

+0

沒有'Else'爲'如果SomethingElse';它一旦進入第一個 – Plutonix

+0

@Plutonix,就不應該進入任何其他的塊顯示,找出它。我改變了順序,並提出了最後兩個ElseIfs,所以現在先檢查它們。 – Bohn

+0

簡化_cell.IsEnabled = IF(String.IsNullOrWhiteSpace(selectedBeginDate),False,True)_ – Steve

回答

1

另一種解決方案:

If Not String.IsNullOrWhiteSpace(selectedBeginDate) AndAlso someMoreConditionsHere Then 
     If somethingElse Then 
      ' Do some work here 
     End If 
    Else 
     cell.IsEnabled = Not String.IsNullOrWhiteSpace(selectedBeginDate) Then 
    End If