unity游戏开发-C#语言基础篇(重载运算符)

 class Program
    {
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public int value { set; get; }
        //该对象是否可用:
        public bool IsAvailable { set; get; }

        public bool Idengyu { set; get; }

        public bool Isdayudengyu { set; get; }
        static void Main(string[] args)
        {

            Program OperA = new Program();
            OperA.value = 88;
            OperA.Name = "火星人";

            Program operB = new Program();
            operB.value = 33;
            operB.Name = "地球人";

            Program operC = OperA + operB;
            //Console.WriteLine(operC.value);

            operC.IsAvailable = OperA.value > operB.value;//重载下面的大于号 重载下面的对象符号 大于和小于都要成对出现;
            operC.Idengyu = OperA.Name == operB.Name;


            //Console.WriteLine("{0}   {1}  {2}", operC.Name, operC.value, operC.IsAvailable);//隐式自动调用,不用写方法名
            Console.WriteLine(operC.Idengyu);

            operC.Isdayudengyu = OperA.value >= operB.value;
            Console.WriteLine(operC.Isdayudengyu);
            Console.ReadKey();
        }
        //重载运算符+ 要求:1,方法修饰符为public;2,必须是静态的;
        public static Program operator +(Program Oper1, Program Oper2)
        {
            Program newOper = new Program();

            newOper.value = Oper1.value - Oper2.value;//+ - 成对出现;
            newOper.Name = Oper1.Name + Oper2.Name;

            return newOper;

        }


        //重载运算符的大于和小于

        public static Program operator >(Program Oper1, Program Oper2)
        {
            Program newOper = new Program();
            newOper.IsAvailable = Oper1.value > Oper2.value;

            return newOper;
        }
        public static Program operator <(Program Oper1, Program Oper2)
        {
            Program newOper = new Program();
            newOper.IsAvailable = Oper1.value > Oper2.value;

            return newOper;
        }


        //重载等于 和不等于
        public static Program operator ==(Program Oper1, Program Oper2)
        {
            Program newOper = new Program();

            newOper.Idengyu = Oper1.Name == Oper2.Name;
            return newOper;

        }
        public static Program operator !=(Program Oper1, Program Oper2)
        {
            Program newOper = new Program();

            newOper.Idengyu = Oper1.Name != Oper2.Name;
            return newOper;

        }

        //重载大于等雨  和小于等于

        public static Program operator >=(Program oper1, Program oper2)
        {
            Program newOper = new Program();
            //定义一个布尔的属性
            newOper.Isdayudengyu = oper1.value >= oper2.value;
            return newOper;
        }

        public static Program operator <=(Program oper1, Program oper2)
        {
            Program newOper = new Program();
            //定义一个布尔的属性
            newOper.Isdayudengyu = oper1.value <= oper2.value;//上面是重载符号 这里是实际返回的布尔值 比较运算符和加减乘除 和 ~ 、 !、++、 — 可以重载,其他不可以
            return newOper;
        }

        public static void GetNum(int a, int b = 3, int c = 5)
        { //有赋值可穿或可不传

            Console.WriteLine(a * b * c);
        }

    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容