前言
在 C# 中,&&、|| 用于处理布尔值(true
和 false
),而&、|、^ 位运算符可以用于按位操作整数。
后者总是计算其两个操作数
而前者可能不会计算第二个操作数,这取决于第一个操作数的值。
非短路逻辑运算
逻辑与 &
也称为位与
按位求与 全1则1
逻辑或 |
也称为位或
按位求或 有1则1
逻辑异或 ^
按位,相同为0,异为1
短路逻辑运算
可能不会计算第二个操作数,取决于第一个操作数的值
条件与 &&
- 当两个操作数都为
true
时,结果为true
。 - 如果第一个操作数为
false
,则不会评估第二个操作数,因为结果已经确定为false
(短路评估)。
条件或 ||
- 只要一个操作数为
true
,结果即为true
。 - 如果第一个操作数为
true
,则不会评估第二个操作数,因为结果已经确定为true
(短路评估)。