-5

ここで何が欠けているのかわかりません..かなり単純なはずです..

tblCurrent は NULL と等しくない tblCurrent.Rows.Count DOES は 0 と等しい

if (tblCurrent != null | tblCurrent.Rows.Count != 0)
{
    //Do something
}
else
{
    // This is what I want
}

正しい条件が 0 であることを確認する必要があるため、false を返し、else ブロックに入れる必要がありますか? 私は何が欠けていますか??

4

2 に答える 2

5

tblCurrentが と等しくない場合、 nullはとtblCurrent != null評価されるtrueため、 全体ORも と評価さtrueれます。なぜなら、は とOR評価trueされるからtrueです。

次のように、ロジックでは の代わりにAND演算子を使用する必要があったようです。&&OR

if (tblCurrent != null && tblCurrent.Rows.Count != 0) {
    ...
} else {
    ...
}

&&演算子は評価を短絡tblCurrentするため、 が であっても例外は発生しませんnull

于 2013-09-05T18:30:10.403 に答える
3

正解OR operator||. は| operatorですbitwise OR

あなたのロジックにはANDではなくが必要ORです。

if (tblCurrent != null && tblCurrent.Rows.Count != 0)
于 2013-09-05T18:29:06.850 に答える