对C#的运算符重载的简易说明
概述:C#中提供了如“+”,“-”,“*”,“/” 等一些对数字的运算,可以使用这些运算符进行一些列的运算。问题:现在产生了一个问题,我需要对一个类“Class”进行这些数学运算,能使用Class1+Class2的方式产生数学运算的结果吗?如果执行这些运算能达到我预期的结果吗?
解决方案:使用C#中提供的运算符重载,对类Class进行运算的重载,来实现我们的需求
如下代码描述了如何对一个类Class进行“+”运算的重载,最后得到的结果为“False”
1.申明一个“+”运算重载的类
/// <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的运算重载已经完成,我们来测试一下计算结果
//用于原算法重载测试
NewCalc arg = new NewCalc();
//得到重载运算的结果
var c = arg + arg;
观察可发现结果C为False,至此,一个简单的运算符重载就实现了,其它的运算符重载是一样的方式,那就交给聪明的你去试一试效果了。
厉害了,我的飞哥,好好琢磨琢磨 抢沙发{:2_35:} 学习了 厉害了, 我都不知道有这么个东西,活到老学到老
页:
[1]