我有点装腔作势,我不确定答案是什么。
基本上 - 在三态数据类型中使用什么值有约定吗?做一些谷歌搜索,它看起来不像有:我见过:
- -1 = 假,0 = 未知/未定义,+1 = 真
- 0 = 假,+1 = 真,+2 = 未知/未定义
- -1 = 未知/未定义,0 = 假,+1 = 真
..在其他人中。如果有的话,我宁愿使用一个众所周知的约定。否则我会编一个:-)很可能没有正确的答案,但只是想我会更深入地挖掘......
编辑
发现微软似乎在最近的代码中使用了这个:-1 = true,0 = false,2 = not known。我假设有2 == unknown意味着它消除了在仅查看调试器/转储/内存等中的原始值时解释 +1/-1 的歧义。奇怪的是,这个选项仅出于这个原因而有吸引力(消除了忘记了 1 的哪个变化意味着“真实”)。