我有以下内容:
public Boolean Test(Boolean value, Boolean negation) {
return negation ? !value : value;
}
因此value
仅在negated
为真时才被否定。否则返回value
,无论是真还是假。
是否有任何操作员可以替代我正在做的事情?
答案 0 :(得分:9)
要查找布尔运算的运算符,您应该考虑创建truth table以查看所有可能的结果。在您的情况下,有两个输入value
(V
)和negation
(N
):
N V | Result
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0
正如您所看到的,您返回true只有N
和V
中的一个为真。那是exclusive or。
在C#中,这是运算符^
(xor),所以你可以像这样编写你的函数:
public bool Test(bool value, bool negation)
{
return negation ^ value;
}