当前位置: 首页 > news >正文

《Inside C#》笔记(十一) 运算符重载

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

运算符重载与之前的索引器类似,目的是为了让语言本身使用起来更方便直接,也是一种语法糖。

一 运算符重载(Operator Overloading)

运算符重载的存在,使得现有的各种运算符可以被重新定义并用来操作用户自定义的数据类型。运算符重载只是语法糖,因为它的本质实际上还是对方法的调用,并没有为语言本身增加新特性。

 

a) 运算符重载的写法

public static <返回值>operator<运算符> (<参数1>,<参数2>…)

还有一些规则:

必须用public static 修饰

不限制返回值的类型,但不推荐返回bool类型。

参数的数量取决于被重载的运算符的性质,如果是一元运算符,重载时也需要一个参数,同样,二元需要两个。

重载一元运算符时,参数的类型必须是当前类。

重载二元运算符时,则要求第一个参数的类型是当前类,第二个参数类型不做限制。

 

b) 能够被重载的运算符

一元运算符:+,-,!,~,++,--,true,false

二元运算符:+,-,*,/,%,&,|,^,<<,>>,==,!=,>,<,>=,<=

 

c) 等号不能被重载,但如果二元运算符被重载,对应的组合运算符如+=,-=等也等同于被重载。

[],和()也无法重载。

 

d) 为了保证代码的可读性,只有在真正需要重载的时候再去重载。

 

学习资料:Inside C# by Tom Archer

转载于:https://my.oschina.net/u/2327858/blog/1189279

相关文章:

  • Python序列类型
  • Unicode编码转换汉字
  • Pycharm常用快捷键
  • 智能家居很玄 自嗨潮退急需建立统一标准
  • 制造向智造转型中的存储应用需求
  • Infinera Q2营收同环比下滑 加速推出新产品
  • 物联网与智能化是我国传感器发展突破口
  • 数据结构与算法题整理
  • 大数据必将驱动 媒体融合远行
  • B轮公司技术问题列表
  • MySQL-join的实现原理、优化及NLJ算法
  • happypack两次报错的问题
  • 【yueyan科普系列】XSS跨站脚本攻击.rar
  • 如何阻止a链接的默认行为并获得href属性
  • 关于Oracle误操作--数据被Commit后的数据回退(闪回)
  • 07.Android之多媒体问题
  • 30天自制操作系统-2
  • Android开源项目规范总结
  • canvas 五子棋游戏
  • const let
  • Docker: 容器互访的三种方式
  • exif信息对照
  • github指令
  • input实现文字超出省略号功能
  • JavaScript HTML DOM
  • JavaScript对象详解
  • MySQL的数据类型
  • MySQL-事务管理(基础)
  • MySQL数据库运维之数据恢复
  • Sublime Text 2/3 绑定Eclipse快捷键
  • vue数据传递--我有特殊的实现技巧
  • 创建一个Struts2项目maven 方式
  • 来,膜拜下android roadmap,强大的执行力
  • 目录与文件属性:编写ls
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 一道面试题引发的“血案”
  • 自制字幕遮挡器
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​2021半年盘点,不想你错过的重磅新书
  • ​卜东波研究员:高观点下的少儿计算思维
  • ###C语言程序设计-----C语言学习(6)#
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (pytorch进阶之路)扩散概率模型
  • (二)linux使用docker容器运行mysql
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (原)本想说脏话,奈何已放下
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)大型网站架构演变和知识体系
  • .NET : 在VS2008中计算代码度量值