执行IEqualityComparer修改相等测试结果
本文关键字:测试结果 修改 IEqualityComparer 执行 | 更新日期: 2023-09-27 18:04:32
我为MyObject
实现了一个IEqualityComparer<MyObject>
,以便我的优先级队列能够对元素进行排序(这里的用法并不重要,但无论如何)。
因此,我实现了Equals
和GetHashCode
方法。
我的问题是:当我做MyObject1 == MyObject2
时,它是使用我在Equals
方法中编写的测试还是经典的相等性测试?
假设这是一个引用类型,==
只会在重载==操作符时执行任何自定义操作:
public static bool operator ==(MyClass1 x, MyClass1 y)
{
...
}
public static bool operator !=(MyClass1 x, MyClass1 y)
{
...
}
据我所知,c#编译器不知道Equals
方法和==
操作符之间的任何关系。