首页 > 解决方案 > 寻找布尔语句的解释

问题描述

我在我正在使用的库中找到了这个语句。它应该检查集群中的当前节点是否是领导者。这是声明:(!(cluster.Leader?.IsRemote ?? true))

为什么不直接使用(cluster.Leader?.IsRemote)?(忽略 ! 运算符,我知道它是如何工作的)

这种方法有什么好处吗?

标签: c#boolean

解决方案


让我们建立一个真值表

 (!(cluster.Leader?.IsRemote ?? true))

构造(请注意,我们需要考虑三个值:truefalsenull):

 (!(cluster.Leader?.IsRemote ?? true)) : Result 
 ----------------------------------------------
                                  true : false
                                 false :  true <- the only true we have
                                  null : false

所以,如果你正在寻找一个简化,你可以把它写成

 (cluster.Leader?.IsRemote == false)

推荐阅读