在不编写b
两次的情况下编写此C#代码的最后一行的简短,优雅,按位方式是什么:
bool getAsIs = ....
bool b = ....
getAsIs ? b : !b
答案 0 :(得分:29)
真值表可以表示为:
getAsIs b getAsIs ? b : !b
--------------------------------
0 0 1
0 1 0
1 0 0
1 1 1
结果可表示为:
result = (getAsIs == b);
答案 1 :(得分:6)
尝试使用二进制XOR(^ Operator (C# Reference)):
bool getAsIs = true;
bool b = false;
bool result = !(getAsIs ^ b);
答案 2 :(得分:3)
我认为是
var foo = !(getAsIs ^ b)
简短,优雅,但绝对令人头疼!