Unity开发之C#基础-操作符重载

前言

操作符重载可有利于我们实现自己想要的算法和排序等 使其更加灵活地使用。

操作符重载

考虑下面的ComplexNumber类,其中定义了一个静态方法Add,用于实现两个复数的
相加操作。
在这里插入图片描述
调用:
在这里插入图片描述
我们会发现 这样写好像不是那么的让人理解 很不自然 不习惯

操作符定义的使用

人们通常 习惯用 “c3=c1+c2”这样的语句,使用操作符重载的机制可以使这些操作符作用于用户自定义的类型

操作符重载的示例

对于ComplexNumber类,只需将其中的方法名“Add”改为“operator+”就能实现对“+”操作符的重载

在这里插入图片描述
在这里插入图片描述

操作符重载的定义

作为一种特殊的函数成员,被重载的操作符必须被声明为公有的和静态的,
并通过在关键字operator后跟操作符来声明。

代码示例:要求—将每个数乘以一个数 得到一个新的结果
在这里插入图片描述
结果:

在这里插入图片描述

C#中的操作符重载

C#中的允许被重载的操作符常用的有以下几种:
一元操作符:++,- -
二元操作符:+,-,*,/,%,==,!=,>,<,>=,<=等。

操作符重载的要求

重载的一元操作符要求有一个参数,且参数类型应与当前类型一致(相同或者是能进行隐式转换)

重载的二元操作符要求有两个参数,且至少有一个参数类型与当前类型一致

代码示例:
在这里插入图片描述
结果:

在这里插入图片描述
考虑到操作的对称性,一元操作符true和false,二元操作符==和!=,>和<,以及>=和<=都要求被成对重载。
在这里插入图片描述

提示

在C#语言中,大多数操作符重载的返回类型都没有限制,例如两个复数相乘的结果
可定义为一个复数,也可以定义一个实数。但对于比较操作符而言,建议它们的返回
类型都应当是bool,这不仅符合人们的思维习惯,也有利于保持语义的一致性。

例如:
在这里插入图片描述

结果:
在这里插入图片描述

总结

操作符重载其实在平时不常见 不过大家如果遇到有需求的使用情况还是应该了解到这个东西的存在


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想吃烤地瓜.

高抬小手一点

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值