如何从重新实现GetHashCode的类中获取原始哈希代码?

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

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

知道这一点,我想我宁愿使用标准对象比较( ReferenceEquals )而不是完整的字符串比较 – 特别是因为这些是在相当规律的基础上在字典中查找的。

所以我声明了一个class ReferenceEqualityComparer : IEqualityComparerDictionary ,认为无论如何都要有用,并且尝试实现这两种方法。

等于很容易,使用object.ReferenceEquals

但是如何获得GetHashCode方法的object.GetHashCode()等价物呢?

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

我知道还有其他方法可以做到这一点 – 创建一个InternedString类,它保存对string的引用,但不实现EqualsGetHashCode ,或者存储索引而不是每个对象的字符串,但我现在很好奇 -实际上有一种实现通用ReferenceEqualityComparer吗?

看看RuntimeHelpers.GetHashCode(object)