为什么C#不允许运算符重载?
为什么c#不允许运算符重载而C ++呢?
当我试图超载时,我收到了这个错误。
期望可重载二进制运算符
我的示例代码看起来像,
public static MyClass operator +=(MyClass obj1, MyClass obj2) { ... }
您可以在C#中重载运算符:
- MSDN教程
在您决定使用运算符重载之前,请至少阅读以下内容:
- 运算符重载的批评
编辑以响应操作编辑:
+=
是不可重载的运算符。 但是,它解析为+
, +
是可重载的。 看看这里可以和不能超载的操作员。
可以重载的运算符:
+
, -
, !
, ~
, ++
, --
, true
, false
+
, -
, *
, /
, %
, &
, |
, ^
, <<
, >>
==
, !=
, <
, >
, <=
, >=
(比较运算符可以重载,但请参见链接中的注释)
运算符重载,C#允许。 (尤达版)
它确实允许操作员超载..
也就是说,通常建议不要覆盖运算符,因为它会改变代码的语义,因此会降低其他人的可维护性。
c#允许运算符重载。 MSDN教程在这里 。
您可以在C#中重载运算符。 运算符重载教程