17、C 中的装箱、拆箱、对象比较与运算符重载

C# 中的装箱、拆箱、对象比较与运算符重载

1. 装箱与拆箱

装箱是将值类型转换为引用类型的过程,这个转换可以隐式发生,也能手动执行。示例代码如下:

int i = 20;
object o = i;

拆箱则是将先前装箱的值类型的值转换回值类型的过程,必须显式进行。示例代码如下:

int i = 20;
object o = i;     // 装箱操作
int j = (int)o;   // 拆箱操作

需要注意的是,只能对先前已装箱的变量进行拆箱。若在 o 不是装箱的 int 时执行拆箱操作,运行时会抛出异常。另外,拆箱时要确保接收值的变量有足够空间存储被拆箱值的所有字节,例如将 long 类型的值(64 位)拆箱为 int 类型(32 位)会导致 InvalidCastException 异常:

long a = 333333423;
object b = (object)a;
int c = (int)b;

2. 对象相等性比较

2.1 引用类型的相等性比较

在比较引用类型的对象时,有四种方式来判断对象是否相等:
- Re

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值