第十六讲:运算符重载

重载运算符 关键字operator

运算符分可重载运算符和不可被重载运算符
第十六讲:运算符重载_第1张图片
运算符重的主要用处是扩展运算符的运算能力

运算符其实也是一种特殊的方法,只不过参数列表的呈现有些不同


我模仿老实做了个实例练习,简单的实现运算符重载,见以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Operator
{
    /// 
    /// 创建一个人的类
    /// 
    public class Ren
    {
        private string sex; //性别字段
        /// 
        /// 性别属性
        /// 
        public string Sex
        {
            get { return sex; }
            set { sex = value; }
        }
        /// 
        /// 构造一个人对象
        /// 
        /// 参数:性别
        public Ren(string s)
        {
            this.sex = s;
        }

        public static Ren operator +(Ren r1, Ren r2)
        {
            Ren r;
            if (r1.Sex == "男" && r2.Sex == "女")
            {
                r = new Ren("人妖");
            }
            else if (r1.Sex == "男" && r2.Sex == "男")
            {
                r = new Ren("变态");
            }
            else if (r1.Sex == "女" && r2.Sex == "女")
            {
                r = new Ren("拉拉");
            }
            else
            {
                r = new Ren("胡扯");
            }
            return r;
        }
    }
}

前台实现:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Operator
{
    class Program
    {
        static void Main(string[] args)
        {
            //实例一个人的对象
            Ren r1 = new Ren("男");
            Ren r2 = new Ren("男");

            //实现一下人加人等什么,这是老师讲的一个实例,我也参考一下,呵呵
            Ren r = r1 + r2; //在没有重载加号运算符前,编译器是会报错的

            Console.WriteLine(r.Sex);
            Console.ReadKey();
        }
    }
}

结果:

第十六讲:运算符重载_第2张图片

你可能感兴趣的:(C#学习历程,(C#基础))