前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三值 bool? 进行与或运算后的结果

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

作者头像
walterlv
发布2020-02-10 14:52:25
6980
发布2020-02-10 14:52:25
举报

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


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

在 [C# 重载条件逻辑运算符(&& 和

)](/post/overload-conditional-and-and-or-operators-in-csharp) 一文中我说明了如何重载条件逻辑运算符 && 和 ||。

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

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

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

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

三值 bool? 的与或结果

x

y

x&y

x|y

true

true

true

true

true

false

false

true

true

null

null

true

false

true

false

true

false

false

false

false

false

null

false

null

null

true

null

true

null

false

false

null

null

null

null

null


参考资料

本文会经常更新,请阅读原文: https://blog.walterlv.com/post/the-semantics-

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-01-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 重载条件逻辑运算符“与”(&&)“或”(||)
  • 三值 bool? 的与或结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档