C#位相等布尔运算符C#中的
本文关键字:运算符 中的 布尔 | 更新日期: 2023-09-27 18:05:47
布尔值是1字节的变量。由于bool是布尔类的快捷方式,我希望&,|=操作已经被重写,使它们能够与布尔类型一起工作,但我对此不太确定&或||=。
这是我的问题,做一些类似的事情:
bool result = condition;
result &= condition1;
result &= condition2;
会起作用,但这只是因为false的bool将为00000000rueamp&和||=何时调用前一个?使用以前的符号真的安全吗?还是最好使用
bool result = condition;
result = result && condition1;
result = result && condition2;
以避免任何奇怪的行为?
请注意,条件可能类似于A>=B或任何其他可能返回bool的检查。
据我在这篇SO文章中所读到的,布尔值上的逐位运算符和逻辑运算符之间唯一真正的区别是,如果左侧操作数是false
,后者不会计算右侧操作数。
这意味着,如果你有两个布尔,就不会有太大的区别。如果有两个方法,最后一个方法不会使用逻辑运算符执行,而是使用二进制运算符执行。
根据文档(强调矿(:
使用&=的表达式分配操作员,如
x &= y
相当于
x = x & y
除了x只被评估一次之外;运算符对整数操作数执行位逻辑AND运算,对布尔操作数执行逻辑AND运算。
与|=
类似。