2014-11-05 83 views
0

我不明白为什么Equals方法需要(T x,T y)。您是否已经有一个实例与您在实例上调用该方法时进行比较? GetHashCode相同 - 为什么它需要一个对象实例作为参数,如果我已经在现有的实例上调用它的话?为什么IEqualityComparer <T> Equals方法需要两个参数?

如果我调用a.GetHashCode(b)会发生什么?哪一个被使用?

回答

5

IEqualityComparer<T>接口是针对比较器的对象。所以,不,你不会有一个实例作为实现的一部分。

你可能会想到IEquatable<T>,它是通过比较对象的类型实现的。

+0

Duh。我完全想到IEquatable谢谢! – Max 2014-11-05 23:22:51

相关问题