运算符重载#
来源:
D:\study\C#1\stu0727\多态 运算符重载
运算符重载允许为自定义类重新定义运算符(如 +、-、>、<)的行为,让对象可以直接使用运算符进行计算。
语法格式#
示例:Box 类 — 运算符重载#
class Box
{
public int x { get; set; }
public int y { get; set; }
public int z { get; set; }
// 只读属性:体积
public int v
{
get { return x * y * z; }
}
// 重载 + 号:两个盒子体积相加
public static int operator +(Box a, Box b)
{
return a.v + b.v;
}
// 重载 - 号:两个盒子体积相减
public static int operator -(Box a, Box b)
{
return a.v - b.v;
}
// 重载 >= 号:比较体积大小
public static bool operator >=(Box a, Box b)
{
return a.v >= b.v;
}
// 重载 <= 号
public static bool operator <=(Box a, Box b)
{
return a.v <= b.v;
}
}
使用:
Box b1 = new Box() { x = 1, y = 2, z = 3 }; // 体积 = 6
Box b2 = new Box() { x = 10, y = 20, z = 30 }; // 体积 = 6000
Console.WriteLine(b1 + b2); // → 6006 (6 + 6000)
Console.WriteLine(b2 - b1); // → 5994 (6000 - 6)
Console.WriteLine(b1 >= b2); // → False
Console.WriteLine(b1.v > b2.v); // → False
要点:运算符重载的底层原理和普通静态方法完全一致,只是写法更加直观。不是所有运算符都能重载(如
&&、||、.不能重载)。