条件下的否定价值?

时间:2016-06-17 18:22:26

标签: c#

我有以下内容:

public Boolean Test(Boolean value, Boolean negation) {
  return negation ? !value : value;
}

因此value仅在negated为真时才被否定。否则返回value,无论是真还是假。

是否有任何操作员可以替代我正在做的事情?

1 个答案:

答案 0 :(得分:9)

要查找布尔运算的运算符,您应该考虑创建truth table以查看所有可能的结果。在您的情况下,有两个输入valueV)和negationN):

N V | Result
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0

正如您所看到的,您返回true只有NV中的一个为真。那是exclusive or

在C#中,这是运算符^(xor),所以你可以像这样编写你的函数:

public bool Test(bool value, bool negation)
{
    return negation ^ value;
}