| 概述:C#中提供了如“+”,“-”,“*”,“/” 等一些对数字的运算,可以使用这些运算符进行一些列的运算。 
 问题:现在产生了一个问题,我需要对一个类“Class”进行这些数学运算,能使用Class1+Class2的方式产生数学运算的结果吗?如果执行这些运算能达到我预期的结果吗?
 
 解决方案:使用C#中提供的运算符重载,对类Class进行运算的重载,来实现我们的需求
 
 如下代码描述了如何对一个类Class进行“+”运算的重载,最后得到的结果为“False”
 
 1.申明一个“+”运算重载的类
 
 [C#] 纯文本查看 复制代码     /// <summary>
    /// 申明计算类
    /// </summary>
    public class NewCalc
    {
        /// <summary>
        /// 属性A
        /// </summary>
        public int? A { get; set; }
        /// <summary>
        /// 属性B
        /// </summary>
        public int? B { get; set; }
        /// <summary>
        /// 重载的“+”运算
        /// </summary>
        /// <param name="arg1">参数1</param>
        /// <param name="arg2">参数2</param>
        /// <returns>计算结果</returns>
        public static bool operator +(NewCalc arg1, NewCalc arg2)
        {
            return arg1.A == null && arg2.A == null ? false : true;
        }
    }
 2.类Class的运算重载已经完成,我们来测试一下计算结果
 
 [C#] 纯文本查看 复制代码             //用于原算法重载测试
            NewCalc arg = new NewCalc();
            //得到重载运算的结果
            var c = arg + arg;
 观察可发现结果C为False,至此,一个简单的运算符重载就实现了,其它的运算符重载是一样的方式,那就交给聪明的你去试一试效果了。
 
 
 
 |