(三十二)C#编程基础复习——C#运算符重载

C#中支持运算符重载,所谓运算符重载就是我们可以使用自定义类型来重新定义C#中大多数运算符的功能,运算符重载需要通过operator关键字后跟运算符的形式来定义的,我们可以将重新定义的运算符看作是具有特殊名称的函数,与其他函数一样,该函数也有返回值类型和参数列表

一、实例(演示运算符重载)

namespace _029
{
    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;
        }
        //重载+运算符,把两个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;
        }
    }
    internal class Program
    {
        static void Main(string[] args)
        {
            Box box1 = new Box();//声明Box1,类型为Box
            Box box2 = new Box();//声明Box2,类型为Box
            Box box3 = new Box();//声明Box3,类型为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 = box1 + box2;

            //bo3的体积
            volume = box3.getVolume();
            Console.WriteLine("box3的体积:{0}",volume);
            Console.ReadKey();
        }
    }
}

运行结果:

二、可重载与不可重载的运算符

 

posted @   代号六零一  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示