c# - 寻找布尔语句的解释
问题描述
我在我正在使用的库中找到了这个语句。它应该检查集群中的当前节点是否是领导者。这是声明:(!(cluster.Leader?.IsRemote ?? true))
为什么不直接使用(cluster.Leader?.IsRemote)
?(忽略 ! 运算符,我知道它是如何工作的)
这种方法有什么好处吗?
解决方案
让我们建立一个真值表
(!(cluster.Leader?.IsRemote ?? true))
构造(请注意,我们需要考虑三个值:true
、false
、null
):
(!(cluster.Leader?.IsRemote ?? true)) : Result
----------------------------------------------
true : false
false : true <- the only true we have
null : false
所以,如果你正在寻找一个简化,你可以把它写成
(cluster.Leader?.IsRemote == false)
推荐阅读
- python - 如何使用 Python 中的类将整数添加到分数?
- python - 在导入的 vscode 上显示警告,但在任何其他编辑器上都没有
- r - 如何在 R 中获取 Seurat 对象的集群级别
- mysql - 在 SQL 中使用 group by 列 1、2、3、...、n 是否有任何语法糖?
- c# - EOF - 标准输入/标准输出 - 交互式
- qt - 使用 Android 设备导航
- javascript - 如何限制codeigniter上的按钮
- c# - 无法双击 c# 元素来创建事件处理程序
- python - Codewars 中的乱码
- javascript - 具有 Metronic 主题的 Blazor 服务器 [v 8.02] 集成