18、C 中的运算符重载与自定义类型转换

C# 中的运算符重载与自定义类型转换

1. 运算符重载概述

并非所有运算符都能被重载。以下是可重载运算符的分类、运算符及相关限制:
| 类别 | 运算符 | 限制 |
| ---- | ---- | ---- |
| 算术二元运算符 | +, , /, -, % | 无 |
| 算术一元运算符 | +, -, ++, – | 无 |
| 按位二元运算符 | &, |, ^, <<, >> | 无 |
| 按位一元运算符 |!, ~ | 无 |
| 布尔运算符 | true, false | 必须成对重载 |
| 比较运算符 | ==, != | 必须成对重载 |
| 比较运算符 | >=, <=, >, < | 无 |
| 赋值运算符 | +=, -=,
=, /=, >>=, <<=, %=, &=, |=, ^= | 不能显式重载,在重载单个运算符(如 +, -, % 等)时会隐式重载 |
| 索引运算符 | [] | 不能直接重载,可通过索引器成员类型支持 |
| 强制类型转换运算符 | () | 不能直接重载,可通过自定义类型转换定义 |

2. 自定义类型转换

在 C# 中,类型转换分为隐式转换和显式转换。对于显式转换,需要在代码中用括号指定目标数据类型。例如:

int I = 3;
long l = I;             // 隐式转换
short s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值