当我必须实现相等比较器时
public class SampleClass
{
public int Prop { get; set; }
}
我应该做
null == new SampleClass()
和
new SampleClass() == null
和
new SampleClass().Equals(null)
假的?
然后呢
new SampleClass() != null
它也应该是假的吗?
更新 人们质疑这个问题背后的原因。应该是 != 和 == 总是相反的。但是,如果我实现了这些方法,那么上面的所有比较结果都为假,那么 == 和 != 运算符可能会产生相同的结果。所以 != 应该返回 true 还是 false 是一个两难选择。
最佳答案
这甚至是一个问题吗?不,null
永远不应该等于一个对象。
编辑: 因此,通过扩展,new SampleClass() != null
应该是 true
。 null
不像 NaN
;它的定义非常明确。
关于c# - 如何处理相等比较中的空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1296005/