简短的问题:如何获得object.GetHashCode()
重新实现的对象的值GetHashCode()
?
长话短说: 所以我有大约十万个对象,每个对象共享许多(非编译时)公共字符串。常见的情况是如果值相等,它就是同一个实例。
知道了这一点,我想我宁愿使用标准对象比较 ( ReferenceEquals
) 而不是完整的字符串比较 - 特别是在字典中经常查找这些比较时。
所以我声明 aclass ReferenceEqualityComparer : IEqualityComparer
与 a 一起使用Dictionary<string, TValue>
,认为无论如何都有它是有用的,然后开始尝试实现这两种方法。
Equals 很简单,使用object.ReferenceEquals
.
但是我如何获得该方法的等价object.GetHashCode()
物GetHashCode
?
即我如何获得对象实例的一些表示?
我知道还有其他方法可以做到这一点 - 创建一个类,InternedString
该类包含对实现泛型的方法?string
Equals
GetHashCode
ReferenceEqualityComparer