例如,在C#中,当我比较两个可空的布尔值(bool?
)时,我得到以下结果:
true & null = null
false & null = false
true | null = true
false | null = null
问题在于我无法理解这些结果是如何产生的,我可以使用什么规则来确定两个布尔值上的逻辑运算符的结果,当其中一个为空时?
答案 0 :(得分:11)
这个想法是“null”在这里意味着“未知”,或“信息不足”。因此,如果答案取决于未知值,则答案本身是未知的。如果答案是相同的,无论未知值是什么(例如true | null
),那么你仍然可以。
这样想:
y = true & x; // the result will be the same as the value of x (it depends on x)
y = true | x; // the result will be true whatever x is