简短问题:如何获取已重新实施object.GetHashCode()
的对象的GetHashCode()
值?
长篇故事: 所以我有大约十万个对象,每个对象共享许多(非编译时)常见字符串。常见,如果值相等,则它是相同的实例。
知道这一点,我想我宁愿使用标准对象比较(ReferenceEquals
)而不是完整的字符串比较 - 特别是因为这些是在字典中定期查找的。 p>
所以我声明class ReferenceEqualityComparer : IEqualityComparer
与Dictionary<string, TValue>
一起使用,认为无论如何都要有用,并尝试实现这两种方法。
等于很容易,请使用object.ReferenceEquals
。
但是如何为object.GetHashCode()
方法获得等效的GetHashCode
?
即如何获得对象实例的某种表示?
我知道还有其他方法可以执行此操作 - 创建一个InternedString
类,其中包含对string
的引用,但不实现Equals
或{{1}或者存储索引而不是每个对象的字符串,但我现在很好奇 - 实际上有一种实现泛型GetHashCode
的方法吗?