我不明白为什么Equals方法采用(T x,T y)。在调用实例上的方法时,是否已经有一个实例可供比较? GetHashCode也是一样的 - 如果我已经在现有实例上调用它,为什么它需要一个对象实例作为参数?
如果我调用a.GetHashCode(b)会发生什么?使用哪一个?
答案 0 :(得分:5)
IEqualityComparer<T>
接口用于 comparer 对象。所以,不......你不会有一个实例作为实现的一部分。
你可能会想到IEquatable<T>
,它是通过被比较对象的类型来实现的。