C#中的GetHashCode
所谓的hash code其实主要用在一些基于hash的集合中,比如Dictionary<TKey,Tvalue>等等。一般来说,假如两个对象是相等的,那么他们的hash值也是相等的,但是反之,则不一定,也就是说两个hash值相等的对象,他们不一定相等。 需要注意的是.NET的默认的GetHashCode是不保证一定相等的,在不同的.NET版本,不同的平台上面,返回的值都有可能不同。所以,不要使用默认的这个函数来作为唯一的判断。所以,有这两点需要注意: 同样的hash值不表示他们对象是相等的。 不要把hash值保存下来,或者在不同的应用之间传递,然后使用这个值来进行判断,因为脱离了这个应用,即使同样的对象,他的hash值也是可能不同的,这和平台,进程等等都有关系。...
Recent Comments