C#运算符重载

    xiaoxiao2021-03-26  31

    重载语句: public static <数据类型> operator<运算符> (数据类型 a,数据类型 b) 例子 public static Box operator- (Box b, Box c)         {             Box box = new Box();             box.length = b.length - c.length;             box.breadth = b.breadth - c.breadth;             box.height = b.height - c.height;             return box;         } 运算符重载规则: 可以被重载的类型: +,-,~,++,--   一元运算符带有一个操作数,可以被重载 +,-,*,/,%      二元运算符带有两个操作数,可以被重载 ==,!=,<,>,<=,>=  比较运算符可以被重载 不可被重载的类型:  &&,||             条件逻辑运算符不能被直接重载 +=,-=,*=,/=,%=    赋值运算符不能被重载 =, . ,?: ,-> ,new ,is ,sizeof, typeof  重载输出的ToString()函数,对于输出数据结构中的内容来说,很关键 For Example: public override string ToString()         {             return String.Format("{0}, {1}, {2}", length, breadth, height);

            }

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OperatorOvlApplication { class Box { private double length; private double breadth; private double height; public double getVolume() { return length * breadth * height; } public void setLength(double len) { length = len; } public void setBreadth(double bre) { breadth = bre; } public void setHeight(double hei) { height = hei; } public static Box operator+ (Box b, Box c) { Box box = new Box(); box.length = b.length + c.length; box.breadth = b.breadth + c.breadth; box.height = b.height + c.height; return box; } public static Box operator- (Box b, Box c) { Box box = new Box(); box.length = b.length - c.length; box.breadth = b.breadth - c.breadth; box.height = b.height - c.height; return box; } public override string ToString() { return String.Format("{0}, {1}, {2}", length, breadth, height); } } class Tester { static void Main(string[] args) { Box box1 = new Box(); Box box2 = new Box(); Box box3 = new Box(); double volume = 0.0; // Box1 详述 box1.setLength(6.0); box1.setBreadth(7.0); box1.setHeight(5.0); // Box2 详述 box2.setLength(12.0); box2.setBreadth(13.0); box2.setHeight(10.0); // Box1 的体积 volume = box1.getVolume(); Console.WriteLine("Box1 的体积: {0}", volume); // Box2 的体积 volume = box2.getVolume(); Console.WriteLine("Box2 的体积: {0}", volume); box3 = box2 + box1; Console.WriteLine("Box3: {0}",box3.ToString()); volume = box3.getVolume(); Console.WriteLine("Box3的体积:{0}", volume); Console.ReadLine(); } } }

    程序运行结果如下,(供参考)

    转载请注明原文地址: https://ju.6miu.com/read-450058.html

    最新回复(0)