第二部分 类型与通用语言运行时----------------读《Microsoft.NET框架程序设计》

18 篇文章 0 订阅

     拆箱和装箱并不是严格意义上的互反操作.拆箱操作的代价要比装箱操作小许多。拆箱操作仅仅是获取指向对象中包含的值类型部分(数据字段)的指针而已,它不会像装箱操作那样涉及到任何内存字节的拷贝.然而,紧接着拆箱之后典型的操作往往就是字段拷贝,这两个操作合起来与装箱操作才成为真正的互反操作.

     对一个引用类型的拆箱操作通常由以下几步组成:

    1.如果该引用为null,将会抛出一个NullReferenceException异常.

    2.如果该引用指向的对象不是一个期望的值类型的已装箱对象,将会抛出一个InvalidCastException异常.

    3.一个指向包含在已装箱对象中值类型部分的指针被返回。该指针指向的值类型对于引用类型对象通常所具有的附加成员(即一个方法表指针和一个SyncblockIndex)一无所知.实际上,该指针指向的是已装箱对象的为装箱部分.

 

  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值