Her*_*ner 0 c# logical-operators
我正在寻找一种基于布尔参数反转条件表达式的方法.当然,这可以通过以下方式完成:
public int do(bool b)
{
if (b)
return this.a ? 1 : 0;
else
return this.a ? 0 : 1;
}
Run Code Online (Sandbox Code Playgroud)
但是,使整个功能成为一个单行是有帮助的.所以,在逻辑表达式而言,我正在寻找一个操作∘结合a和b的方式,
a∘b = a
a∘(¬b)=¬a
问题:是否存在这样的逻辑运算(或运算组合)?
看起来我们想要xnor:
return (!(a ^ b)) ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)
(但是我们没有xnor运算符所以我将xor与not结合使用)
或者通过交换结果子表达式来简化:
return (a ^ b) ? 0 : 1;
Run Code Online (Sandbox Code Playgroud)
我建议的一个简单易懂的实现是:
return (b == this.a) ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)
因为根据您的原始代码,1如果它们相等则您似乎想要返回0.