1

为了让我的优先级队列能够对元素进行排序,我实现了一个IEqualityComparer<MyObject>for (这里的使用并没有真正导入,但无论如何)。 因此,我实现了and方法。MyObject
EqualsGetHashCode

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

4

1 回答 1

4

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

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

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

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

于 2011-08-05T15:05:21.570 回答