如何确定可空布尔逻辑运算符的结果?
问题描述:
在C#中,例如,当我比较两个可为空布尔(bool?
)我得到以下结果:如何确定可空布尔逻辑运算符的结果?
true & null = null
false & null = false
true | null = true
false | null = 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
谢谢,我明白了! – 2009-09-05 06:01:14
我认为你的意思是'它必须是x''而不是'它必须是真的'在第一个注释中,即y将是任何x将会是。 – GDS 2016-12-06 09:32:49
@GDS:嗯,我的意思是“x必须是真的,因为y是真实的”,但为了清晰我会编辑。 – 2016-12-06 09:33:45