2

c# 是否有类似 Java 的 equals 和 gethashcode 相同的问题?

像这样的问题:http: //onjava.com/pub/a/onjava/2006/09/13/dont-let-hibernate-steal-your-identity.html

4

2 回答 2

12

如果您的意思是在继承方面很难定义平等,是的。

但是,.NET 具有IEqualityComparer<T>经常用于相等和散列的接口 - 用于容器,例如Dictionary<TKey, TValue>. 框架中几乎所有需要相等/散列的东西都允许由 指定行为IEqualityComparer<T>,这意味着如果类型本身给出的形式不适合您的需要,您可以表达您想要的任何相等概念。

于 2010-04-16T18:20:24.523 回答
3

不知道你在说什么问题,因为你有点模糊......

但是,如果您的意思是在您 override时应该(如果您不希望编译器警告或代码中可能出现意外行为)覆盖,那么是的。GetHashCodeEquals

于 2010-04-16T18:18:18.693 回答