3

简短的问题:如何获得object.GetHashCode()重新实现的对象的值GetHashCode()

长话短说: 所以我有大约十万个对象,每个对象共享许多(非编译时)公共字符串。常见的情况是如果值相等,它就是同一个实例。

知道了这一点,我想我宁愿使用标准对象比较 ( ReferenceEquals) 而不是完整的字符串比较 - 特别是在字典中经常查找这些比较时。

所以我声明 aclass ReferenceEqualityComparer : IEqualityComparer与 a 一起使用Dictionary<string, TValue>,认为无论如何都有它是有用的,然后开始尝试实现这两种方法。

Equals 很简单,使用object.ReferenceEquals.

但是我如何获得该方法的等价object.GetHashCode()GetHashCode

即我如何获得对象实例的一些表示?

我知道还有其他方法可以做到这一点 - 创建一个类,InternedString该类包含对实现泛型的方法?stringEqualsGetHashCodeReferenceEqualityComparer

4

1 回答 1

3

看看RuntimeHelpers.GetHashCode(object)

于 2011-09-14T10:31:43.927 回答