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、运行结果