一些情况下,我们希望运算符能拥有一些我们我们自己定义的功能方便使用,这时候就会用到运算符重载。
以下代码比较简单地重载了加号,功能使两个box对象的length相加。
public static Box operator+ (Box b, Box c)
{
Box box = new Box();
box.length = b.length + c.length;
return box;
}
重载的运算符肯定是要被外部使用的,所以一般定义为public,它显然也是被类的所有对象共享的,所以用static修饰,重载的运算符和函数的功能是类似的,所以也有返回值类型和参数列表。
注意,条件运算符&&和||、赋值运算符=,+=, -=, *=, /=, %=都是不能被重载的。