繁体   English   中英

C#逻辑运算问题

[英]C# logical operation question

为什么这是真的:

(true | false & false)

这是假的:

(true | false && false)

在我看来应该是对方..

它们绑定为:

true | (false & false)  // true

(true | false) && false  // false

我会避免编写依赖于这些规则的代码 - 这显然不清楚读者:)

供参考,请参阅C#4语言规范的第7.3.1节,该规范显示&优先级高于| (因此第一个结果)和| 优先级高于&& (因此第二个结果)。

这是因为这里的运算符优先级

&优先| 优先于&& ,所以你的表达式被评估为

(true | (false & false)) = (true | false) = true

((true | false) && false) = (true && false) = false

有关更多信息,请参阅包含优先级的C#运算符的引用

暂无
暂无

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

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