2010-07-06 50 views
35

給定兩個布爾值,如何拿出最優雅的單線程計算C#中的異或操作?兩個布爾字段的異或操作

我知道一個人可以通過switchifelse的組合來做到這一點,但這會讓我的代碼變得相當醜陋。

回答

59
bool xorValue = bool1^bool2; 
+3

我想沒有'^^'操作符,因爲短路XOR是不可能的,因爲你必須在所有情況下評估兩個值。 – 2013-05-14 06:23:17

+3

我個人認爲'bool ElegantResult = ElegantBoolean1^ElegantBoolean2;'有點更優雅......但我想這真的是在眼前 – 2014-11-06 13:12:49

48

確定添加一些背景: 你可以看看這裏Tables

在那裏,你可以看到「異或」基本相同「不等於」。所以,你可以只使用這個(布爾):

if(X != Y)... 

但是,如果你想直接向人們展示你的意思是「XOR」就在這裏使用其他的答案。

+0

我喜歡這個解決方案。應該起來。 – aod 2016-08-24 06:49:33

1

我覺得應該幫助:

A^B ? TrueOperation() : FalseOperation();