重写==运算符时,顺序是否重要?

时间:2017-01-30 11:54:36

标签: c#

在C#中,我可以使用自己的实现覆盖==。例如:

public static bool operator ==(SomeType x, SomeOtherType y)
{
    return false;
}

参数的顺序是否重要?将SomeTypeSomeOtherType交换是否有所不同?

1 个答案:

答案 0 :(得分:5)

是的。在你的情况下,

SomeType x;
SomeOtherType y;
bool b = x == y;

会调用你的函数,但是

bool b = y == x;

在这方面重载的运算符函数与具有多个参数类型的任何常规函数具有相同的行为:传递的参数必须与 order 的预期类型相匹配。