1、运算符重载
运算符重载是指重定义C#内置的运算符。
程序员也可以使用用户自定义类型的运算符。重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。与其他函数一样,重载运算符有返回类型和参数列表。
2、在Box类中定义运算符重载
public class Box
{
private double length;
[Description("长度")]
public double Length
{
get { return length; }
set { length = value; }
}
private double width;
[Description("宽度")]
public double Width
{
get { return width; }
set { width = value; }
}
private double height;
[Description("高度")]
public double Height
{
get { return height; }
set { height = value; }
}
public double GetVolume()
{
return length * width * height;
}
public static bool operator == (Box box1, Box box2)
{
return (box1.length == box2.length) && (box1.width == box2.width) && (box1.height == box2.height);
}
public static bool operator != (Box box1, Box box2)
{
return (box1.length != box2.length) || (box1.width != box2.width) || (box1.height != box2.height);
}
}
3、应用Box类
Box box1 = new Box();
Box box2 = new Box();
Box box3 = new Box();
double volume = 0.0;
box1.Length = 3.0;
box1.Width = 4.0;
box1.Height = 5.0;
volume=box1.GetVolume();
Console.WriteLine($"Box1的体积是{volume}");
box2.Length = 6.0;
box2.Width = 7.0;
box2.Height = 8.0;
volume = box2.GetVolume();
Console.WriteLine($"Box2的体积是{volume}");
bool flag=box1 == box2;
Console.WriteLine($"Box1==Box2:{flag}");
flag = box1 != box2;
Console.WriteLine($"Box1!=Box2:{flag}");
4、运行结果