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

C# 重写==运算符时顺序是否重要?,c#,C#,在C语言中,我可以用自己的实现覆盖=。例如: public static bool operator ==(SomeType x, SomeOtherType y) { return false; } 参数的顺序在这里重要吗?将SomeType与SomeOtherType交换是否有区别?是的。就你而言 SomeType x; SomeOtherType y; bool b = x == y; 会调用你的函数,但是 bool b = y == x; 不会 重载运算符函数在这方面与任何

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

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

参数的顺序在这里重要吗?将
SomeType
SomeOtherType
交换是否有区别?

是的。就你而言

SomeType x;
SomeOtherType y;
bool b = x == y;
会调用你的函数,但是

bool b = y == x;
不会

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

是的,当类型不同时,顺序很重要(对于运算符解析),请参阅详细信息和