运算符重载 概念
让自定义类和结构体 能够使用运算符
使用关键字 operator
特点
一定是一个公共的静态方法 返回值写在operator前 逻辑处理自定义
条件运算符需要成对实现
一个符号可以多个重载
不能使用ref和out
语法
public static 返回类型 operator 运算符 (参数列表)
为+进行运算符重载,让Point类的类型对象进行相加
cs
class Point
{
public int x;
public int y;
public static Point operator +(Point p1,Point p2)
{
Point p = new Point();
p.x = p1.x + p2.x;
p.y = p1.y + p2.y;
return p;
}
public static Point operator +(Point p1, int value)
{
Point p = new Point();
p.x = p1.x + value;
p.y = p1.y + value;
return p;
}
}
对重载使用时,只能按重载的参数顺序进行运算
例如:Point p4 = p + 2;//可以重载
Point p4 = 2 + p3;//没有对应的重载 ,参数顺序也要一致
cs
Point p = new Point();
p.x = 1;
p.y = 1;
Point p2 = new Point();
p2.x = 1;
p2.y = 1;
Point p3 = p + p2;//如果不进行重载 是不能相加的
Point p4 = p + 2;//重载
//Point p4 = 2 + p3;//没有对应的重载 ,参数顺序也要一致