您的位置:首页 > 其它

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

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

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

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

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

3.一个指向包含在已装箱对象中值类型部分的指针被返回。该指针指向的值类型对于引用类型对象通常所具有的附加成员(即一个方法表指针和一个SyncblockIndex)一无所知.实际上,该指针指向的是已装箱对象的为装箱部分.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: