日期:2014-05-19  浏览次数:20775 次

我重写了equal方法后,编译器提示我也得重写gethashcode,这个方法如何写?
我一直都买怎么留意这个方法,也没用他,不重写也可以编译,允许也没问题,我应该如何处理呢?

------解决方案--------------------
如果重写了Equals但不重写GetHashCode,那么在某些哈希索引的地方会出问题,例如该类型作为Hashtable或Dictionary的键。

GetHashCode重写的原则是当两个对象Equals为true的时候,GetHashCode的值也应该相同。
所以,你的Equals方法是判断哪几个字段相等则认为两个对象相等的话,把这些字段的GetHashCode的结果异或在一起即可,