Учитывая две булевских переменные, как придумать самый изящный один лайнер, который вычисляет операцию "исключающее ИЛИ" в C#?
Я знаю, что можно сделать это комбинацией switch
или if
else
но это сделало бы мой код довольно ужасным.
В C# есть логический оператор XOR ^
. Вот как это делается.
bool result = x ^ y // x XOR y
Хорошо, чтобы добавить контекст: Вы можете посмотреть здесь Таблицы
Там вы можете увидеть, что «исключающее ИЛИ» в основном то же самое, что «не равно». Итак, вы можете просто использовать это (с логическим значением):
if (X != Y)...
Но если вы хотите напрямую показать людям, вы имеете в виду «XOR», просто используйте здесь другие ответы.
Думаю, это должно помочь:
A ^ B ? TrueOperation() : FalseOperation();