繁体   English   中英

C#按位相等的bool运算符

[英]C# bitwise equal bool operator

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

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

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

会工作,但这只是因为bool将为00000000表示false00000001表示true或者因为bool类下面会使用类似&& =|| =的东西来调用前一个? 使用以前的符号实际上是安全的还是更好用

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

避免任何奇怪的行为?

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

至于我在这篇SO帖子中可以看到,布线运算符和布尔运算符逻辑运算符之间唯一真正的区别在于,如果左侧操作数为false ,则后者不会评估右侧操作数。

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

根据文件 (强调我的):

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

x &= y

相当于

x = x & y

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

|=类似

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM