Отменить логическое значение, основанное на другом булевом
Какой короткий, элегантный и побитовый способ записать последнюю строку этого кода на С# без записи b
дважды:
bool getAsIs = ....
bool b = ....
getAsIs ? b : !b
Ответы
Ответ 1
Таблица истинности может быть выражена как:
getAsIs b getAsIs ? b : !b
--------------------------------
0 0 1
0 1 0
1 0 0
1 1 1
Результат может быть выражен как:
result = (getAsIs == b);
Ответ 2
Попробуйте использовать двоичный XOR (^ Operator (ссылка на С#)):
bool getAsIs = true;
bool b = false;
bool result = !(getAsIs ^ b);
Ответ 3
Я думаю, что это
var foo = !(getAsIs ^ b)
Короткая, элегантная, но определенно голова-скребок!