首页 文章

C#按位相等的bool运算符

提问于
浏览
11

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

这是我的问题,做的事情如下:

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

会工作,但这只是因为bool将为00000000为false而00000001为true或因为在bool类下面将使用 &&=||= 之类的东西被调用?使用以前的符号实际上是安全的还是更好用

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

避免任何奇怪的行为?

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

2 回答

  • 6

    至于我在this SO post中可以读到的,布线运算符和布尔运算符逻辑运算符之间唯一真正的区别是,如果左侧操作数是 false ,则后者不会评估右侧操作数 .

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

  • 3

    the documentation(强调我的):

    使用&=赋值运算符的表达式,例如x&= y等效于x = x&y,但x仅计算一次 . &运算符对积分操作数和bool操作数上的逻辑AND执行按位逻辑AND运算 .

    并且similar for |= .

相关问题