Search code examples
c#operatorsxorboolean-operations

Conditional XOR?


How come C# doesn't have a conditional XOR operator?

Example:

true  xor false = true
true  xor true  = false
false xor false = false

Solution

  • In C#, conditional operators only execute their secondary operand if necessary.

    Since an XOR must by definition test both values, a conditional version would be silly.

    Examples:

    • Logical AND: & - tests both sides every time.

    • Logical OR: | - test both sides every time.

    • Conditional AND: && - only tests the 2nd side if the 1st side is true.

    • Conditional OR: || - only test the 2nd side if the 1st side is false.