因为在 equal 之前,首先会比较 Hash code。
如果连  Hash code 都不相等,那样就没有必要去调用 equal 了。

解决方案 »

  1.   


    你的意思是说,默认的Object.Equals()实现就是调用了HashCode()来比较?这是不是说,我们自己重载Equals的话,也是应该先比较HashCode,看是否是同一个引用,然后再实现Equals的逻辑?
      

  2.   

    如果你能保证你的class不会当成hash键值使用,就无所谓。
    在Hash应用中一般是先调用GetHashCode,如果相等才调用Equals。