我假设 .NET 中的(通用)Dictionary 类在其键上使用 GetHashCode() 方法来生成哈希。我有两个问题由此引出:
Object 有一个可覆盖的 GetHashCode() 方法。对于用户定义的引用类型对象,此方法是否会根据引用的数据生成哈希?例如,如果我有一个仅包含一个 String 实例变量的类 OneString - 具有匹配字符串的此类的两个单独实例是否总是产生相同的哈希码?或者是否需要重写 OneString 的 GetHashCode() 方法才能实现此功能?
推测在 String 类中实现的散列函数与在不同的引用类型(例如 BitmapImage)中实现的散列函数不同。在最常见的类中实现的哈希函数是否公开可用?