Подтвердить что ты не робот

Отменить логическое значение, основанное на другом булевом

Какой короткий, элегантный и побитовый способ записать последнюю строку этого кода на С# без записи b дважды:

bool getAsIs = ....
bool b = ....

getAsIs ? b : !b
4b9b3361

Ответ 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)

Короткая, элегантная, но определенно голова-скребок!