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