C# 按位相等 bool 运算符
C# bitwise equal bool operator
C# 中的布尔值是 1 字节变量。
而且因为 bool 是布尔值 class 的快捷方式,我希望 &=、|= 操作已被覆盖以让他们使用布尔类型,但我不太确定。没有像 &&= 或 ||= 这样的东西可以使用。
我的问题如下:
bool result = condition;
result &= condition1;
result &= condition2;
会起作用,但这仅仅是因为对于 false 和 00000001[=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.
据我在 this SO post 中所读,按位运算符和逻辑运算符在布尔值上的唯一真正区别是,如果左侧操作数是 [=,则后者不会计算右侧操作数10=].
这意味着如果你有两个布尔值,就不会有太大区别。如果您有两种方法,最后一种方法不会使用逻辑运算符执行,但会使用二元运算符。
C# 中的布尔值是 1 字节变量。 而且因为 bool 是布尔值 class 的快捷方式,我希望 &=、|= 操作已被覆盖以让他们使用布尔类型,但我不太确定。没有像 &&= 或 ||= 这样的东西可以使用。
我的问题如下:
bool result = condition;
result &= condition1;
result &= condition2;
会起作用,但这仅仅是因为对于 false 和 00000001[=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.
据我在 this SO post 中所读,按位运算符和逻辑运算符在布尔值上的唯一真正区别是,如果左侧操作数是 [=,则后者不会计算右侧操作数10=].
这意味着如果你有两个布尔值,就不会有太大区别。如果您有两种方法,最后一种方法不会使用逻辑运算符执行,但会使用二元运算符。