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

Max*_*Max 0 .net c# vb.net clr

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

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

Pet*_*iho 5

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

你可能会想到IEquatable<T>,它被比较的对象类型所实现.