如果 - Or 语句的计算结果为 TRUE,而实际上它应该是 FALSE

本文关键字:实际上 FALSE TRUE 语句 Or 计算 结果 如果 | 更新日期: 2023-09-27 18:30:30

不知道我在这里错过了什么。应该很简单..

tblCurrent 不等于 NULLtblCurrent.Rows.Count DO 等于 0

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

看到正确的条件是 0,所以它应该返回 false 并放入 else 块? 我错过了什么??

如果 - Or 语句的计算结果为 TRUE,而实际上它应该是 FALSE

如果tblCurrent不等于null,则tblCurrent != null计算结果为 true ,因此整体OR的计算结果也将计算为 true,因为OR的计算结果为 true当且仅当其一方或双方计算为 true

看起来您的逻辑应该使用 AND 运算符 && 而不是 OR ,如下所示:

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

&&运算符使评估短路,因此即使tblCurrent null,您也不会收到异常。

正确的OR operator||| operator是一个bitwise OR.

你的逻辑需要AND,而不是OR

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