自学C#本质论
重写重写重写重写重重写重重写重写重写重写重写重写重写重重--------------------------------------------------------------------------------------------------
当你想要重写Equals()时,也应该同时重写GetHashCode()。若忘记此操作,编译器显示警告:在将类作为散列表集合(比如System.Collections.Hashtable和System.Collections.Generic,Dictionary)的键(key)使用时,最好也将GetHash()重写
散列码即Hashcode,作用是生成一个与对象值对应的数字,从而高效地平衡一个散列表。
一个良好的GetHashCode实现的原则如下::::(性能指为了增加性能而需要采取的措施;安全性是指为了保障安全性而产生的措施)
必须1. 相等的对象必然有相等的散列码(若a.Equals(b),则a.GetHashCode()==b.GetHashCode())
必须2. 针对一个特定的对象,在这个对象的生存期内,GetHashCode()始终应该返回相同的值,即使对象的数据发生了改变。许