的原因是由于在System.Collection.HashTable类型、System.Collection.Generic.Dictionary类型以及其他的一些集合的实现中,要求两个对象必须有相等的哈希值才被视为相等...所以重写Equals就必须重写GetHashCode,确保相等性算法和对象哈希码算法一致....:
1、获取键的哈希码
2、该哈希码标识了现在要以顺序的方式搜索哈希桶
3、根据该哈希码查找与指定键对象相等的键对象....所以,需要修改哈西表中的键对象时,正确的做法是移出原来的键值对,
修改键对象,将新的键值对对象添加回哈希表....选择算法来计算类型实例的哈希码时,请遵守一下规则:
1、这个算法要提供良好的随机分布,使哈希表获得最佳的性能
2、可在算法中调用基类的GetHashCode方法,并包含它的返回值,但一般不要调用Object