C#按位相等的bool运算符

时间:2015-07-31 09:11:23

标签: c# boolean bitwise-operators boolean-logic

C#中的布尔值是1个字节的变量。 并且因为bool是布尔类的快捷方式,我希望覆盖& = | = 操作,让它们使用布尔类型,但是我&# 39;我不太确定。没有什么比使用&& = || =

这是我的问题,做了类似的事情:

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

会起作用,但仅仅因为对于 false 而且 00000000 00000001 true 或因为在调用前一个类时,bool类下面会使用类似&& = || = 的内容? 使用以前的符号实际上是否安全,或者更好地使用

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

避免任何奇怪的行为?

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

2 个答案:

答案 0 :(得分:7)

就我在this SO post中读到的而言,布尔运算符和逻辑运算符之间唯一真正的区别在于,如果左侧操作数是{{{},则后者不会评估右侧操作数。 1}}。

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

答案 1 :(得分:3)

Per the documentation(强调我的):

  

使用& =赋值运算符的表达式,例如

     

x &= y

     

相当于

     

x = x & y

     

除了x只评估一次。 &运算符对积分操作数执行按位逻辑AND运算,对bool操作数执行逻辑AND

similar for |=