如果object.ReferenceEquals返回true,那么instance.Equals应该总是返回true吗?
你认为下面的输出是通过/失败时的意外行为吗?
Assert.True(object.ReferenceEquals(obj,obj));
Assert.True(obj.Equals(obj));就我个人而言,我认为这很奇怪,也不能真正想到一个很好的理由,在那里,一个实例不应该等同于自己。
发布于 2012-08-09 16:58:03
回答你的问题有两种方法。
.Equals返回true,那么它应该始终从.ReferenceEquals返回true。这已编入MSDN的“类库开发设计指南”( http://msdn.microsoft.com/en-us/library/336aedhh.aspx文章):
遵循Object.Equals方法上定义的契约,如下所示:
x.Equals(x)返回true。Equals定义为{ return false; }。有悖常理但有可能。发布于 2012-08-09 16:55:07
是的,如果引用等于真,则正确实现等于应该返回true。
https://stackoverflow.com/questions/11888259
复制相似问题