实现IEqualityComparer会修改相等的测试结果吗?

时间:2011-08-05 15:03:04

标签: c# iequalitycomparer

我为IEqualityComparer<MyObject>实现了MyObject,以便我的优先级队列能够对元素进行排序(这里的用法并不真正导入,但无论如何)。
因此,我实施了EqualsGetHashCode方法。

我的问题是:当我做MyObject1 == MyObject2时,它是否使用我在Equals方法中编写的测试,还是经典的平等测试?

1 个答案:

答案 0 :(得分:4)

假设这是一个引用类型,==只会在重载==运算符时执行任何自定义操作:

public static bool operator ==(MyClass1 x, MyClass1 y)
{
    ...
}

public static bool operator !=(MyClass1 x, MyClass1 y)
{
    ...
}

据我所知,C#编译器不知道Equals方法与==运算符之间的任何关系。