阅读一些代码,我一直看到这个:
public override bool Equals (object obj)
{
if (obj == null || this.GetType ().Equals (obj.GetType())) return false;
//compare code...
}
不应该是这样的(注意!):
public override bool Equals (object obj)
{
if (obj == null || !this.GetType ().Equals (obj.GetType())) return false;
//compare code...
}
或者在这种情况下,等于表现不同吗?
答案 0 :(得分:2)
这看起来像个错误。当类型相同时返回false肯定不是预期的行为。