我很好奇大家是怎么想的。在 SQL 中(至少在 oracle 中)NULL 在概念上转换为“我不知道值”,所以 NULL = NULL 是假的。 (也许它实际上导致一个 NULL,然后被强制转换为 false 或类似的东西......)
这对我来说很有意义,但在大多数 OO 语言中,null 意味着“没有引用”,所以 null==null 应该是真的。这是在 C# 中通常的处理方式,例如在覆盖 Equals 时。
另一方面,在面向对象的语言中,null 仍然经常用来表示“我不知道”,并且将 null==null 实现为 false 可能会导致代码对某些领域更有意义。
告诉我你的想法。
最佳答案
对于通用编程,null == null 应该返回 true。
我数不清我遇到的次数
if( obj != null )
{
//call methods on obj
}
模式,而且它通常似乎是不可避免的。如果 null == null 的计算结果为 false,则此模式将分崩离析,并且没有什么好方法可以毫无异常(exception)地处理这种情况。
关于language-agnostic - 比较对象时 null == null 是否应该为真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1664934/