C#中的GetHashCode()是做什么用的啊。时候时候需要重写啊

解决方案 »

  1.   

    GetHashCode 方法的默认实现不保证针对不同的对象返回唯一值。
    .NET Framework 不保证 GetHashCode 方法的默认实现以及它所返回的值在不同版本的 .NET Framework 中是相同的。
    在进行哈希运算时,该方法的默认实现不得用作唯一对象标识符。 
    GetHashCode 方法可以由派生类型重写。值类型必须重写此方法,
    以提供适合该类型的哈希函数和在哈希表中提供有用的分布。
    哈希代码必须基于实例字段或属性(而非静态字段或属性)的值。
      

  2.   

    哈希代码用数字的方式来区分不同的对象(当然,不同的对象可能有相同的哈希代码).Net里一些哈希集合会用到这个方法
    比如HashSet<T>,Dictionary<TKey,TValue>,Hashtable