c# - 如何根据布尔值反转三元条件表达式?
问题描述
我正在寻找一种基于布尔参数反转条件表达式的方法。当然,这可以通过以下方式完成:
public int do(bool b)
{
if (b)
return this.a ? 1 : 0;
else
return this.a ? 0 : 1;
}
但是,将整个函数变成单行函数会很有帮助。所以,就逻辑表达式而言,我正在寻找一个操作 ∘ 来组合a
并且b
以一种方式
a ∘ b = a
∘ (¬b) = ¬a
问题:有这样的逻辑运算(或运算组合)吗?
解决方案
看起来我们想要 xnor:
return (!(a ^ b)) ? 1 : 0;
(但我们没有 xnor 运算符,所以我将 xor 与 not 结合使用)
或者通过交换结果子表达式来简化:
return (a ^ b) ? 0 : 1;
推荐阅读
- elf - 如何从 .elf 文件中获取所有字符串?
- c# - LinQ 查询动态条件列表
- prolog - 如何从另一个谓词调用谓词 - Prolog
- javascript - Angular http.get() 检测调用超时
- excel - 如何从表中提取值并创建新表
- python - “CMRESHandler”对象没有属性“_timer”
- jquery - 在jquery中获取段落的文本
- typo3 - 当类别用于数据页面时,TYPO3 9 中 tx_news 的站点地图
- c++ - 如何从 gtkmm 树视图中获取选定的行
- react-native - React Native 错误:ENOENT:没有这样的文件或目录