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的检查。

C#位相等布尔运算符C#中的

据我在这篇SO文章中所读到的,布尔值上的逐位运算符和逻辑运算符之间唯一真正的区别是,如果左侧操作数是false,后者不会计算右侧操作数。

这意味着,如果你有两个布尔,就不会有太大的区别。如果有两个方法,最后一个方法不会使用逻辑运算符执行,而是使用二进制运算符执行。

根据文档(强调矿(:

使用&=的表达式分配操作员,如

x &= y

相当于

x = x & y

除了x只被评估一次之外;运算符对整数操作数执行位逻辑AND运算,对布尔操作数执行逻辑AND运算。

|=类似。