C# 重载运算符

CLR支持在类型中,通过使用operator关键字定义静态成员函数来重载运算符,让开发者可以像使用内置基元类型一样使用该类型:

 1     class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             Salary mikeIncome = new Salary(54);
 6             Salary roseIncome = new Salary(100);
 7             //add方法
 8             Salary total1 = Salary.add(mikeIncome, roseIncome);
 9             //运算符重载
10             Salary total2 = mikeIncome + roseIncome;
11         }
12     }
13     class Salary
14     {
15         public float RNB;
16         public Salary(float value)
17         {
18             RNB = value;
19         }
20         //add方法
21         public static Salary add(Salary s1, Salary s2)
22         {
23             Salary total = new Salary(s1.RNB + s2.RNB);
24             return total;
25         }
26         //运算符重载
27         public static Salary operator +(Salary s1, Salary s2)
28         {
29             Salary total = new Salary(s1.RNB + s2.RNB);
30             return total;
31         }
32     } 

第8行代码与第10行代码结果是一样的,但后者读起来一目了然。

参考:《编写高质量代码改善C#程序的157个建议》陆敏技

原文地址:https://www.cnblogs.com/xuyouyou/p/13164063.html