![]() |
1
39
有些事情可能是真的,也可能是假的,也可能是未定义的,原因有很多。如果一个人只有两个孩子,他会怎么回答“你的第三个孩子是女孩吗?”?正确和错误都是错误的。Null表示比较不适用是恰当的。 |
![]() |
2
16
各种答案一般讨论了可空类型的重要性。特别是对于可为空的布尔值,还有一个额外的答案。在C#中很难理解,但如果查看任何数据库中的空值逻辑,就很容易理解。
假设您正在跟踪一个列表或一张表
您希望检索上周交付的所有装运的列表。所以你写这个:
是否应使用
是否应使用
所以现在你有一个奇怪的情况。您可能认为,在这两个查询之间,您将收到系统中的所有装运。
即使是这一次,也无法获得所有结果:
为了准确地表示此逻辑,您需要一个不正确的条件 或 不
清晰地
但C#并非如此一致。在C#中,如果
啊哈。。。现在它又回来了
为什么?
你应该关心吗
如果你需要评估一个答案可能是“我不知道”的情况,使用
这样,调用方就可以决定如何处理“我不知道”响应,而不是简单地选择默认值。其他任何东西都意味着你的班级 . |
![]() |
3
10
|
![]() |
4
6
当一些问题还没有得到回答时,这很好——想想问卷调查。您有一个y/n问题列表,只有一些问题得到了回答。您不希望将true或false发布到数据库表中,因为用户尚未回答问题。 |
![]() |
5
3
|
![]() |
6
3
懒惰编程!
|
![]() |
7
2
嗯,我可以看到它被用作“尚未确定”之类的东西,我一直在使用布尔值,有时仅仅两个值是不够的!!例如:
|
![]() |
8
2
|
![]() |
9
2
我在一个筛选值中使用了它。基本上,我在数据库中有一个bool字段,但我想要三种状态:仅返回值为true的行,仅返回值为false的行,不过滤并返回所有行。 如果没有可为空的bool,我将不得不使用enum或第二个bool来确定“Filter by this field yes/no”,这将增加bloat。 |
![]() |
10
1
如果您的程序可能需要知道bool的设置或初始化,那么可以为null表示bool尚未设置或初始化 |
|
11
1
如果您将使用可空布尔值,我将考虑使用枚举或其他数据结构来代替。它可以帮助您避免在不知道NULL的含义时出错。
然后,我看到了这篇文章和李接受的答案。
因为我们不知道NULL是什么意思,因为它绝对不是真的(因为,它怎么可能是真的?),所以最好的答案是假的。 另外,如果这个问题确实返回NULL,那么我们已经为域引入了一个新的定义。这个定义的范围是什么?
是的,托马斯去了酒吧(最有可能的答案(如果你认识托马斯) 错不,托马斯没有去酒吧。 在第一次计算中,出现了一些可知的错误。你问托马斯这个问题,但他回答时打了个喷嚏,使你一时失聪。只要再问他一次,你就会得到答案。 不知何故,酒吧被烧毁了,托马斯逃走了。没有现实的方法可以得到答案(请不要在这上面戳洞,但我知道你会的) 不适用,请参见上面关于三个孩子的示例,但是,请参见bars和Thomas。 空在这里是什么意思?必须根据具体情况确定空值的含义。这就是为什么我认为使用枚举或其他结构通常更好,因为它更优雅地揭示了非二进制返回值背后的意图。 |
![]() |
12
0
|
![]() |
13
0
假设订单已经下了,但还没有发货。它的价值是什么
处理这个问题的老式方法是使用一个神奇的值,比如
因此,现代方法是允许
此外,数据库长期以来允许列允许
|
![]() |
14
0
|
![]() |
15
0
|
![]() |
tender · 基于布尔限定符的Python熊猫if语句 6 年前 |
![]() |
user3663055 · 尽管有适当的布尔值,但代码不会打印 6 年前 |
![]() |
merko · 检查布尔值-Javascript 6 年前 |
![]() |
user6631314 · IOS/核心数据/目标-C:使用布尔值预测 7 年前 |
![]() |
user1032531 · 符号极性的自然键 7 年前 |
![]() |
Bartholomas · Python语句中的布尔逻辑 7 年前 |
![]() |
Dustin Michels · 理解字符串的真实性 7 年前 |
![]() |
user44840 · 熊猫数据帧阈值--如果超过,则保持数字固定 7 年前 |