C#逻辑运算题
为什么这是真的:
(true | false & false)
这是假的:
(true | false && false)
在我看来应该是相反的..
why this is true:
(true | false & false)
and this is false:
(true | false && false)
in my mind should be the oposite..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
它们绑定为:
并且
我会避免编写依赖于这些规则的代码 - 读者显然不清楚:)
有关参考,请参阅 C# 4 语言规范的第 7.3.1 节,其中显示了
&
的优先级高于|
(因此是第一个结果),并且|
的优先级高于&&
(因此是第二个结果)。They bind as:
and
I would avoid writing code which relies on these rules though - it's obviously unclear to the reader :)
For reference, see section 7.3.1 of the C# 4 language specification, which shows
&
having higher precedence than|
(hence the first result) and|
having higher precedence than&&
(hence the second result).这是因为此处的运算符优先级
This is because of operator precedence here
&
优先于|
,而|
优先于&&
,因此您的表达式将被计算为并
参见 C# 运算符的参考 包含优先级以获取更多信息。
&
has priority to|
which has priority to&&
, so your expressions are evaluated asand
See the reference of C# operators containing there precedence for more information.