0
在C#中,例如,當我比較兩個可爲空布爾(bool?
)我得到以下結果:如何確定可空布爾邏輯運算符的結果?
true & null = null
false & null = false
true | null = true
false | null = null
的問題是,我不明白這些成果怎麼來的,有什麼規則,我可以用於確定兩個布爾運算符上邏輯運算符的結果,當其中一個爲空時?
在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