13

据我所知,C# 中没有直接的等价物。我目前的想法是使用带有自定义 IEqualityComparer 的 Dictionary 来检查引用是否相等。

然而,这似乎失去了通过散列获得的优势。有没有办法从每个不同的对象中获取一个单独的哈希码?或者这是不可能的,我应该使用其他方法?

4

1 回答 1

19

您可以非虚拟地使用RuntimeHelpers.GetHashCode(object)which 调用- 这相当于Java 中的调用。我想这就是你所追求的。因此,您只需将其用于散列和相等性。object.GetHashCode()System.identityHashcodeIEqualityComparerobject.ReferenceEquals

于 2009-05-08T09:24:04.970 回答