我是C++出身的新手,现在在学习C#,我尝试了以下代码:
class Class1
{
int mI = 0;
string mS = "ab";
public static Class1 operator + (Class1 obj1, Class1 obj2)
{
return new Class1()
{
mI = obj1.mI + obj2.mI,
mS = obj1.mS + obj2.mS
};
}
public static void operator += (Class1 obj1)
{
mI += obj1.mI;
mS += obj1.mS;
}
}
我发现
operator+=
函数编译不通过,显示如下错误:所以C#根本不支持这种类型的运算符重载吗?error CS1019: 需要可重载的一元操作符。
operator+=
,然后使用它来重载operator+
。以下是C++ Primer的提示:“定义算术运算符和相关复合赋值运算符的类通常应该通过使用复合赋值运算符来实现算术运算符。” - Ayxan Haqverdili