我对这三个人的理解是:
.Equals()
测试数据相等性(因为缺乏更好的描述)。对于同一对象的不同实例,.Equals()
可以返回 True,这是最常见的重写方法。
.ReferenceEquals()
测试两个对象是否是相同的实例并且不能被重写。
缺省情况下,==
与 ReferenceEquals()
相同,但是可以覆盖这个值。
但 C # 站指出:
在对象类中,
Equals
和ReferenceEquals
方法是 语义上是等价的,除了ReferenceEquals
只能在 对象实例ReferenceEquals
方法是静态的。
现在我不明白了,有人能解释一下吗?