C#逻辑运算题

标签 c# evaluation operator-keyword

为什么这是真的:

(true | false & false)

这是错误的:

(true | false && false)

在我看来应该是相反的..

最佳答案

它们绑定(bind)为:

true | (false & false)  // true

(true | false) && false  // false

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

作为引用,请参阅 C# 4 语言规范的第 7.3.1 节,其中显示 & 的优先级高于 |(因此是第一个结果)和 | 的优先级高于 &&(因此是第二个结果)。

关于C#逻辑运算题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4968513/

相关文章:

c# - 默认 SynchronizationContext 与默认 TaskScheduler

c# - dllimport : c code affect a struct passed by reference (c#)

c# - 在 XAML 中移动标签

haskell - Haskell 中特定列表理解的解释

c# - 数学表达式求值器出错

loops - 好奇 Haskell 中如何评估 "loop = loop"

javascript - 这个没有运算符的 "if"是如何工作的?

c# - 使用 Xamarin/Vision 框架进行 iOS 条码检测

c++ - 赋值运算符中的内存泄漏

c++重载==运算符需要一个和两个参数