52

2 つのブール値が与えられた場合、C# で XOR 演算を計算する最もエレガントな1 つのライナーをどのように考え出すのですか?

switchorを組み合わせてこれを行うことができることは知っていますif elseが、それは私のコードをかなり醜くします。

4

4 に答える 4

77
bool xorValue = bool1 ^ bool2;
于 2010-07-06T07:06:08.587 に答える
72

いくつかのコンテキストを追加します: ここで見ることができますテーブル

「排他的または」は基本的に「等しくない」と同じであることがわかります。したがって、これを(ブール値で)使用できます:

if (X != Y)...

ただし、「XOR」を意味する人を直接表示したい場合は、ここで他の回答を使用してください。

于 2010-07-06T07:04:54.590 に答える
18

C# には論理 XOR 演算子 ^があります。方法は次のとおりです。

bool result = x ^ y // x XOR y
于 2010-07-06T07:06:25.290 に答える
0

私はそれが役立つはずだと思います:

A ^ B ? TrueOperation() : FalseOperation();
于 2010-07-06T07:07:07.673 に答える