zoukankan      html  css  js  c++  java
  • 自定义数据类型,操作符重载实例[C#]

    自定义数据类型,操作符重载实例。

    以下创建一个基本的货币类型Currency,USD类为Currency的子类,并进行操作符重载,可以与特别类型进行基本的加减乘除操作。

       /// <summary>
        /// 货币类型基类
        /// </summary>
        public class Currency
        {
            //货币实际数值
            public decimal price { get; set; }
            public Currency(decimal value)
            {
                price = value;
            }
            //重载ToString方法
            public override string ToString()
            {
                return price.ToString();
            }
        }
        public class USD : Currency
        {
            //继承基类构造函数
            public USD(decimal value) : base(value) { }
            /// <summary>
            /// 此方法重载=号,可以直接使用=号赋值
            /// </summary>
            /// <param name="value"></param>
            /// <returns>返回USD货币类型</returns>
            public static implicit operator USD(decimal value)
            {
                return new USD(value);
            }
            /// <summary>
            /// 重载+号,同货币可以相加
            /// </summary>
            /// <param name="usd"></param>
            /// <param name="other"></param>
            /// <returns>返回USD货币类型</returns>
            public static USD operator +(USD usd, USD other)
            {
                return new USD(usd.price + other.price);
            }
            /// <summary>
            /// 重载-号,同货币可以相减
            /// </summary>
            /// <param name="usd"></param>
            /// <param name="other"></param>
            /// <returns>返回USD货币类型</returns>
            public static USD operator -(USD usd, USD other)
            {
                return new USD(usd.price - other.price);
            }
            /// <summary>
            /// 重载*号,可以同decimal类型相乘
            /// </summary>
            /// <param name="usd"></param>
            /// <param name="other"></param>
            /// <returns>返回USD货币类型</returns>
            public static USD operator *(USD usd,decimal other)
            {
                return new USD(usd.price * other);
            }
            /// <summary>
            /// 重载/号,可以同decimal类型相除
            /// </summary>
            /// <param name="usd"></param>
            /// <param name="other"></param>
            /// <returns>返回USD货币类型</returns>
            public static USD operator /(USD usd, decimal other)
            {
                return new USD(usd.price * other);
            }
        }
    

    更多WEB开发技术请加群:Asp.Net高级群 号码:261882616  博主以及同事和你共同探讨感兴趣的话题。



  • 相关阅读:
    IP 排序
    React 项目搭建
    Nuxt
    element table 封装
    iviewui Slider 滑块的坑
    浏览器自动填写用户名和密码
    asd
    正则表达式
    snmp中载入第三方mib库(转载)
    一键lamp
  • 原文地址:https://www.cnblogs.com/lilin123/p/2758670.html
Copyright © 2011-2022 走看看