操作符的重载

 

using System;

using System.Collections.Generic;

using System.Text;

 

namespace Examp18

{

    class Rectangle

    {

        private int Height;

        private int Width;

        public Rectangle()

        {

            _Height = 0;//会自动调用set方法

            _Width = 0;

        }

        public Rectangle(int Height, int Width)

        {

            _Height = Height;

            _Width = Width;

        }

        public int _Height

        {

            get { return Height; }//这里的Height是将被调用的变量

            set { Height = value; }

        }

        public int _Width

        {

            get { return Width; }

            set { Width = value; }

        }

        // 重载ToString方法

        public override String ToString()

        {

            return "" + Height + "" + Width;

        }

        public double Area

        {

            get { return Height * Width; }

            //set { }

        }

        static void Main(string[] args)

        {

            Rectangle objRec1 = new Rectangle();

            Rectangle objRec2 = new Rectangle();

            Rectangle objRec3 = new Rectangle(4,50);

            objRec1.Height = 10;

            objRec2.Height = 20;

            objRec1.Width = 20;

            objRec2.Width = 30;

            Console.WriteLine("矩形#长与宽:{0}", objRec1.ToString());

            Console.WriteLine("矩形#长与宽:{0}", objRec2.ToString());

            Console.WriteLine("矩形#长与宽:{0}", objRec3.ToString());

            //这里会调用操作符"=="进行得载

            if (objRec1 == objRec2)

            {

                Console.WriteLine("objRec1objRec2宽与高都相等");

            }

            else

            {

                //调用">"操作符进行重载

                if (objRec1 > objRec2)

                {

                    Console.WriteLine("objRec1大于objRec2");

                }

                else

                {

                    Console.WriteLine("objRect1小于objRect2");

                }

            }

            //调用"=="操作符进行重载

            if (objRec1 == objRec3)

            {

                Console.WriteLine("objRec1objRec3的长与宽相等");

            }

            else

            {

                //调用"=="操作符进行重载

                if (objRec1 == objRec3)

                {

                    Console.WriteLine("objRec1objRec3面积相等");

                }

                else

                {

                    //调用">"操作符进行重载

                    if (objRec1 > objRec3)

                    {

                        Console.WriteLine("objRec1面积比objRec3面积大");

                    }

                    else

                    {

                        Console.WriteLine("objRec1面积比objRec3面积小");

                    }

                }

            }

        }

       

        //对操作符"=="进行重载

        public static bool operator ==(Rectangle a,Rectangle b)

        {

            //会高用get属性

            return ((a._Height==b._Height)&&(a._Width==b._Width));

        }

        //对操作符"!="进行重载

        public static bool operator !=(Rectangle a, Rectangle b)

        {

            return !(a == b);

        }

        //对操作符">"进行重载

        public static bool operator >(Rectangle a, Rectangle b)

        {

            return a.Area > b.Area;

        }

        //"<"进行重载

        public static bool operator <(Rectangle a, Rectangle b)

        {

            return a.Area < b.Area;

        }

  

    }

  

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值