C# 按位相等 bool 运算符

C# bitwise equal bool operator

C# 中的布尔值是 1 字节变量。 而且因为 bool 是布尔值 class 的快捷方式,我希望 &=|= 操作已被覆盖以让他们使用布尔类型,但我不太确定。没有像 &&=||= 这样的东西可以使用。

我的问题如下:

bool result = condition;
result &= condition1;
result &= condition2;

会起作用,但这仅仅是因为对于 false00000001[=37=,布尔值将是 00000000 ] 对于 true 或因为在 bool class 下面将使用类似 &&=||= 什么时候调用前一个? 使用以前的符号实际上是安全的还是使用

更好
bool result = condition;
result = result && condition1;
result = result && condition2;

避免任何奇怪的行为?

请注意,条件可能类似于 A >= B 或任何其他可能的检查 return a bool.

根据 the documentation(强调我的):

An expression using the &= assignment operator, such as

x &= y

is equivalent to

x = x & y

except that x is only evaluated once. The & operator performs a bitwise logical AND operation on integral operands and logical AND on bool operands.

similar for |=.

据我在 this SO post 中所读,按位运算符和逻辑运算符在布尔值上的唯一真正区别是,如果左侧操作数是 [=,则后者不会计算右侧操作数10=].

这意味着如果你有两个布尔值,就不会有太大区别。如果您有两种方法,最后一种方法不会使用逻辑运算符执行,但会使用二元运算符。