我为IEqualityComparer<MyObject>
实现了MyObject
,以便我的优先级队列能够对元素进行排序(这里的用法并不真正导入,但无论如何)。
因此,我实施了Equals
和GetHashCode
方法。
我的问题是:当我做MyObject1 == MyObject2
时,它是否使用我在Equals
方法中编写的测试,还是经典的平等测试?
答案 0 :(得分:4)
假设这是一个引用类型,==
只会在重载==运算符时执行任何自定义操作:
public static bool operator ==(MyClass1 x, MyClass1 y)
{
...
}
public static bool operator !=(MyClass1 x, MyClass1 y)
{
...
}
据我所知,C#编译器不知道Equals
方法与==
运算符之间的任何关系。