为什么IEqualityComparer <t> Equals方法有两个参数?</t>

时间:2014-11-05 23:16:51

标签: c# .net vb.net clr

我不明白为什么Equals方法采用(T x,T y)。在调用实例上的方法时,是否已经有一个实例可供比较? GetHashCode也是一样的 - 如果我已经在现有实例上调用它,为什么它需要一个对象实例作为参数?

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

1 个答案:

答案 0 :(得分:5)

IEqualityComparer<T>接口用于 comparer 对象。所以,不......你不会有一个实例作为实现的一部分。

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