编写高质量代码改善C#程序的157个建议——建议9: 习惯重载运算符
2024-09-25 07:38:46
建议9: 习惯重载运算符
在开发过程中,应该习惯于使用微软提供给我们的语法特性。我想每个人都喜欢看到这样的语法特性:
int x = ;
int y = ;
int total = x + y;
而不是用下面的语法来完成一样的事情:
int x = ;
int y = ;
int total = int.Add(x, y);
同理,在构建自己的类型时,我们应该始终考虑该类型是否可以用于运算符重载。如果考虑类型Salary,下面的这段代码看起来就不是那么舒服了:
Salary mikeIncome = new Salary() { RMB = };
Salary roseIncome = new Salary() { RMB = };
Salary familyIncome = Salary.Add(mikeIncome, roseIncome);
应该使类型支持:
Salary familyIncome = mikeIncome + roseIncome;
后者读起来一目了然。CLR支持在类型中,通过使用operator关键字定义静态成员函数来重载运算符,让开发人员可以像使用内置基元类型一样使用该类型。Salary重载“+”运算符的版本看起来应该像以下形式:
class Salary
{
public int RMB { get; set; } public static Salary operator +(Salary s1, Salary s2)
{
s2.RMB += s1.RMB;
return s2;
}
}
转自:《编写高质量代码改善C#程序的157个建议》陆敏技
最新文章
- Ubuntu杂记——Ubuntu下Eclipse安装Maven问题
- oracle dataguard (一)
- SQLDMOHelper
- HDU 2487 Ugly Windows
- linux命令:touch
- JqueryPagination 分页插件使用说明
- 利用no_merge优化
- 【Android Tricks 6】ViewPager首页与尾页的滑动动作响应
- jQuery EasyUI实现全部关闭tabs
- struts2.5框架使用通配符指定方法(常见错误)
- git使用过程中遇到的问题及处理方法
- 《android入门第一季》之android目录结构详解
- HDU 2147 P/N博弈
- mpvue——引入antv-F2图表
- Hdoj 1846.Brave Game 题解
- Django的使用规则
- 转(C# 类似右键菜单弹出窗体)
- 【C#】#102 发送邮件
- MySQL数据库有哪些特点
- day12-迭代器