关于C#:逻辑或按位或可互换?

logical OR bitwise OR interchangeable?

本问题已经有最佳答案,请猛点这里访问。

假设我有两个比较

1
2
3
4
if ((length >= 524288) | (length == 0))
{
      //do something...
}

VS

1
2
3
4
if ((length >= 524288) || (length == 0))
{
      //do something...
}

这是相同的事情,因为当你按位还是0.001万变成1?在这种情况下,使用位还是有什么特殊的原因?


在这种情况下,位=逻辑,因为两个测试都返回0或1。

与单个|的唯一区别是,无论第一个测试的结果是什么,测试的两个部分都将被执行=>在这里使用||