-3

さて、私はこの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)
{
    ........
}

2 番目は、1 番目が条件を満たさないelse if場合に検証されますが、1番目が条件を満たした場合、2 番目はジャンプしますelse ifelse if

私が理解しているのは、最初のステートメントで検証しdialogResult、答えがはいの場合、次のステートメントは検証する必要がありますが、検証しないということです

これらelse ifは5つですが、この2つが問題になります

誰かが私に何が問題なのか教えてくれる

4

2 に答える 2

2

@Karlsの答えは正しいです。if-else-ifブロックがどのように実行されるかを視覚化するには、インデントを追加するだけです。

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

この種の条件付きブロックの配置は好きではありません。実際には、メソッドに深くネストされた条件があり、インデントが不十分で隠されているためです。

于 2013-07-22T15:45:30.433 に答える