什么叫做重载运算符

比如:int x=1;

int y=2;

int total=x+y;

我们比较喜欢看上面这种写法,而不是这种,

int x=1;

int y=1;

int total=int.add(x,y); 上面所说的就是重载运算符

在C#中,我们通过使用operator关键字来进行运算符的重载

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 重载运算符 {
class Program {
static void Main(string[] args) { Salary mikeIncome = new Salary() { RMB = 22 };
Salary roseIncome = new Salary() { RMB = 33 };
//Salary familyIncome = Salary.Add(mikeIncome, roseIncome);
//Console.WriteLine(familyIncome.RMB);
int x = 1;
Salary testIncome=mikeIncome + roseIncome;
Console.WriteLine(testIncome.RMB); Console.ReadKey(); }
} public class Salary {
public int RMB { get; set; }
public static Salary Add(Salary one, Salary two) {
two.RMB = one.RMB + two.RMB;
return two;
} //现在用重载运算符来实现一下
public static Salary operator+(Salary s1, Salary s2){
s2.RMB = s1.RMB + s2.RMB;
return s2;
} } }

上面就是一个重载运算符,要记住的是重载运算符,必须是静态方法。

C++里面的重载运算符是可以是实例,以及虚的重载,但是C#重载运算符竟然只支持静态方法的,看到很多人喷,一些需要高性能计算的东西,用了静态方法之后,整个性能就慢了很多,这个是发现C#设计不合理的第二个地方。

最新文章

  1. 【Xpath学习】xpath都不会,说什么你做网站自动化测试的?
  2. tomcat(二)--tomcat结构
  3. WinForm 简单蒙版实现控件遮盖
  4. javascript的switch的使用注意
  5. Flex的正则表达式匹配速度与手工代码的比较
  6. ZOJ3791 An Easy Game(DP)
  7. Jquery幻灯片焦点图插件
  8. 【转贴】Linux系统NGINX负载均衡404错误处理方法
  9. C# 玩家昵称屏蔽敏感字眼
  10. React:用于搭建UI的JavaScript库
  11. 了解ANSI编码
  12. WebApi2官网学习记录---批量处理HTTP Message
  13. jQuery多版本的使用,同一文件多个版本引用
  14. (转)混乱的First、Follow、Firstvt和Lastvt
  15. 【用户权限】MongoDB用户权限
  16. [Linux] Linux的环境变量
  17. SharePoint 2013 使用 RBS 功能将二进制大型对象 BLOB 存储在内容数据库外部。
  18. centos6.5环境disconf管理端安装配置详解
  19. spring之IOC和DI实现
  20. Redis—数据结构之sds

热门文章

  1. VS2017:win32项目与win32控制台应用程序的转换方法
  2. 什么是HTTP? HTTP 和 HTTPS 的区别?
  3. (2)RabbitMQ架构设计与应用场景
  4. Android开发----使用 Room 将数据保存到本地数据库
  5. Linux空洞权限有问题处理
  6. redis分析系列之set命令
  7. 使用XmlWriter写入XML
  8. MySQL不建议delete删除数据
  9. CentOS 7下iptables配置添加修改规则端口方法(转)
  10. Linux开机显示模式切换