当前位置: 首页 > news >正文

三值 bool? 进行与或运算后的结果

bool? 实际上是 Nullable<Boolean> 类型,可以当作三值的 bool 类型来使用。不过三值的布尔进行与或运算时的结果与二值有什么不同吗?


本文内容

      • 重载条件逻辑运算符“与”(&&)“或”(||)
      • 三值 bool? 的与或结果
        • 参考资料

重载条件逻辑运算符“与”(&&)“或”(||)

在 C# 重载条件逻辑运算符(&& 和 ||) 一文中我说明了如何重载条件逻辑运算符 &&||

这两个运算符不能直接重载,但可以通过重载 &| 运算符来间接完成。

对于 bool?,重载了这样两个运算符:

  • bool? operator &(bool? x, bool? y)
  • bool? operator |(bool? x, bool? y)

于是我们可以得到三值 bool? 的与或结果。

三值 bool? 的与或结果

xyx&yx|y
truetruetruetrue
truefalsefalsetrue
truenullnulltrue
falsetruefalsetrue
falsefalsefalsefalse
falsenullfalsenull
nulltruenulltrue
nullfalsefalsenull
nullnullnullnull

参考资料

  • Using nullable types - C# Programming Guide - Microsoft Docs

我的博客会首发于 https://walterlv.com/,而 CSDN 和博客园仅从其中摘选发布,而且一旦发布了就不再更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://blog.csdn.net/wpwalter),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • 为什么我们不应该使用微信或者 QQ 作为团队协作的 IM 工具?
  • 通过重写预定义的 Target 来扩展 MSBuild / Visual Studio 的编译过程
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • C# 中委托实例的命名规则
  • 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径
  • 让 MSBuild Target 支持 Clean
  • C#/.NET 如何确认一个路径是否是合法的文件路径
  • 不使用 U 盘等任何工具全新安装 Windows 操作系统
  • C# 永远不会返回的方法真的不会返回
  • CentOS 的终端中如何搜索文件
  • 如何在命令行中监听用户输入文本的改变?
  • 使用 Xamarin 开发 iOS 键盘扩展(含网络访问)
  • 使用 Xamarin 开发 iOS 应用中需要注意的若干个问题
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • 使用 Xamarin 在 iOS 真机上部署应用进行调试
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • CSS 专业技巧
  • Debian下无root权限使用Python访问Oracle
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • php中curl和soap方式请求服务超时问题
  • quasar-framework cnodejs社区
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 不上全站https的网站你们就等着被恶心死吧
  • 工作手记之html2canvas使用概述
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 机器学习 vs. 深度学习
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 与 ConTeXt MkIV 官方文档的接驳
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • MPAndroidChart 教程:Y轴 YAxis
  • ​【已解决】npm install​卡主不动的情况
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #QT(串口助手-界面)
  • (function(){})()的分步解析
  • (Python) SOAP Web Service (HTTP POST)
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (十一)手动添加用户和文件的特殊权限
  • (四)JPA - JQPL 实现增删改查
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • ***通过什么方式***网吧
  • ../depcomp: line 571: exec: g++: not found
  • .dwp和.webpart的区别
  • .java 9 找不到符号_java找不到符号
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net refrector
  • .NET 读取 JSON格式的数据
  • .NET6实现破解Modbus poll点表配置文件
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • /etc/shadow字段详解