.GetHashCode()方法有何作用?

解决方案 »

  1.   

    我在将bool型变量保存到数据库中的BIT型子段中时发现使用.GetHashCode()方法可以很方便的把TRUE FALSE转换成1 0
      

  2.   

    摘自《applied microsoft .net framework programming》:
    FCL的设计者认为如果任何对象的任何实例都能被放入到哈希表集合中,其用途将大的难以置信。为了实现这个最终目标,System.Object提供了一个虚GetHashCode方法,使得哈希代码可以被所有对象获取。
      

  3.   

    返回该实例的哈希代码关于hash:
    哈希值表示与特定字节集对应的唯一值。与通过名称、版本或其他指定方式指示程序集相比,哈希值可以清楚无误地指定程序集。名称容易受到冲突的影响,在少数情况下完全不同的代码可能得到相同的名称。代码的不同变体可能被意外地标为相同的版本。但是,即使是只更改一个位,也将导致完全不同的哈希值。哈希值是以加密形式指定策略中特定程序集的安全方式,它不使用数字签名。安全哈希算法的设计使以相同的哈希值构造不同的程序集在计算方面是不能实现的,不管这种尝试是意外的还是恶意的。默认情况下,支持来自 SHA1 和 MD5 哈希算法的证据,虽然可以通过 GenerateHash 使用任何哈希算法。
      

  4.   

    MSDN:
    Object.GetHashCode 的此实现只能保证将为相同的实例返回相同的哈希代码;它无法保证不同的实例将具有不同的哈希代码,或者两个引用相同值的对象将具有相同的哈希代码。.NET 框架的不同版本对于相同的实例也可能会生成不同的哈希代码。
    --------