Microsoft为了实现对不同对象的区分,以方便将其放入HashTable,通过hashcode找对对应 键/值 对,所以为object设置了这样一个GetHashCode的方法.
获取一个唯一的哈希码区分,object内部的算法不清楚,但是它提供的是虚方法,你自己可以覆写自己的区分方式,当然这要遵循一定的原则。
另外,如果覆写Equal方法的话,就一定要覆写GetHashCode方法,原因是: hashtable判断两个对象是否Equal需要用到该方法,这里的对象是指key对象。
需要特别说明的是,这里获取的hash code 可以在某次应用中用于区分对象,但是不能将某次获取的hashcode作为永久标志应用,它是会因算法的重写而变的。
Dictionary要用到GetHashTable的验证代码和调试图片如下,不过dic中的元素个数是2不是1,这是因为hash算法的缘由可以自己看一下hash算法(部分文字参考自cnblogs幸福轻扬<<基本类型、引用类型、值类型>>):