为什么C#不允许运算符重载?

为什么c#不允许运算符重载而C ++呢?

当我试图超载时,我收到了这个错误。

期望可重载二进制运算符

我的示例代码看起来像,

public static MyClass operator +=(MyClass obj1, MyClass obj2) { ... } 

您可以在C#中重载运算符:

  • MSDN教程

在您决定使用运算符重载之前,请至少阅读以下内容:

  • 运算符重载的批评

编辑以响应操作编辑:

+=是不可重载的运算符。 但是,它解析为++是可重载的。 看看这里可以和不能超载的操作员。

可以重载的运算符:

+-!~++--truefalse

+-*/%&|^<<>>

==!=<><=>= (比较运算符可以重载,但请参见链接中的注释)

运算符重载,C#允许。 (尤达版)

它确实允许操作员超载..

也就是说,通常建议不要覆盖运算符,因为它会改变代码的语义,因此会降低其他人的可维护性。

c#允许运算符重载。 MSDN教程在这里 。

您可以在C#中重载运算符。 运算符重载教程