2013-07-22 31 views
-3

嗯,我有這個if語句有什麼問題這個if語句嵌套

else if (dtpFechaResol.Value.ToShortDateString().Equals(DateTime.Now.ToShortDateString())) 
{ 
    DialogResult dialogResult = MessageBox.Show("Are you sure", "Error!", MessageBoxButtons.YesNo, MessageBoxIcon.Information); 

    if (dialogResult == DialogResult.No) dtpFechaResol.Focus(); 
} 
// This Statement is Jumping 
else if (blNuevo && cbCaja.SelectedIndex >= 0 && txtResolucion.Text.Trim().Length > 0) 
{ 
    ........ 
} 

第二else if是,如果第一else if不能滿足條件,但如果第一次else if滿足第二個是條件驗證跳躍

我所理解的是,在第一次發言時驗證dialogResult和答案是肯定的下一條語句都來驗證,但不要

這些else if五個但這2讓我

有人能說我什麼是我的問題

+0

[if-else(C#Reference)](http://msdn.microsoft.com/en-us/library/5011f09h(v = vs80).aspx) –

回答

3

這是else if如何構建工作的問題。執行第一個else if,其值爲true,而整個if...else if塊中的後續else if部分將被忽略。

如果您希望保證評估多個條件,則將它們拆分爲單獨的if塊。

2

@Karls答案是正確的。爲了顯現的if-else-如果塊是如何執行的,你只需要添加一些縮進:

if (conditionA) 
{ 
    statementA 
} 
else if (conditionB) 
    { 
     statementB 
    } 
    else if (conditionC) 
      { 
       statementC 
      } 

我不喜歡這種條件塊安排。因爲實際上你在方法中有很深的嵌套條件,這些條件隱藏在可憐的縮進中。

+2

+1強調正確的縮進 –