如何用简洁、优雅、位运算的方式编写这段 C# 代码的最后一行,而不需要两次使用 b
:
bool getAsIs = ....
bool b = ....
getAsIs ? b : !b
如何用简洁、优雅、位运算的方式编写这段 C# 代码的最后一行,而不需要两次使用 b
:
bool getAsIs = ....
bool b = ....
getAsIs ? b : !b
真值表可以表示为:
getAsIs b getAsIs ? b : !b
--------------------------------
0 0 1
0 1 0
1 0 0
1 1 1
结果可以表达为:
result = (getAsIs == b);
尝试使用二进制异或 (^ 运算符 (C# 参考)):
bool getAsIs = true;
bool b = false;
bool result = !(getAsIs ^ b);
我认为这是
var foo = !(getAsIs ^ b)
简短、优雅,但肯定会让人思考!
b
吗?性能?我不认为这些都是深刻的原因。 - nemo