ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C# Operator 运算符

2021-03-02 08:02:36  阅读:731  来源: 互联网

标签:20210302 C# Age 运算符 operator m1 m2 Operator Model


operator 可以用于重载运算符和自定义类型转换

实例

    public class _20210302_1_Model
    {
        public string Name { get; set; }
        public int Age { get; set; }

        /*
         * operator 用于重载运算符
         */
        // 重载运算符"+"
        public static  int operator + (_20210302_1_Model m1, _20210302_1_Model m2)
        {
            return m1.Age + m2.Age;
        }
        // 重载运算符"-"
        public static int operator -(_20210302_1_Model m1, _20210302_1_Model m2)
        {
            return m1.Age - m2.Age;
        }

        /*
         * operator 用于自定义类型转换
         */
        // 定义隐式的从_20210302_1_Model到int的类型转换
        public static implicit operator int (_20210302_1_Model m1)
        {
            return m1.Age;
        }
        // 定义显式的从_20210302_1_Model到string的类型转换
        public static explicit operator string(_20210302_1_Model m1)
        {
            return m1.Name;
        }

    }

测试代码

            _20210302_1_Model m1 = new _20210302_1_Model { Name = "M1", Age = 10 };
            _20210302_1_Model m2 = new _20210302_1_Model { Name = "M2", Age = 20 };

            var res1 = m1 + m2; // 30
            var res2 = m2 - m1; // 10

            int res3 = m1; // 隐式转换,转换结果 10
            string res4 = (string)m2; // 显示转换,转换结果 "M2"

 

标签:20210302,C#,Age,运算符,operator,m1,m2,Operator,Model
来源: https://www.cnblogs.com/tomorrow0/p/14467019.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有