20

b无需编写两次即可编写此 C# 代码的最后一行的简短、优雅、按位方式是什么:

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

getAsIs ? b : !b
4

3 回答 3

41

真值表可以表示为:

getAsIs    b    getAsIs ? b : !b
--------------------------------
0          0    1
0          1    0
1          0    0
1          1    1

结果可以表示为:

result = (getAsIs == b);
于 2012-12-21T01:53:58.180 回答
6

尝试使用二进制 XOR(^ 运算符(C# 参考)):

bool getAsIs = true;
bool b = false;

bool result = !(getAsIs ^ b);
于 2012-12-21T01:50:45.047 回答
3

我想这是

var foo = !(getAsIs ^ b)

简短,优雅,但绝对令人头疼!

于 2012-12-21T01:51:06.963 回答