第二部分 类型与通用语言运行时----------------读《Microsoft.NET框架程序设计》
2007-07-04 00:32
260 查看
拆箱和装箱并不是严格意义上的互反操作.拆箱操作的代价要比装箱操作小许多。拆箱操作仅仅是获取指向对象中包含的值类型部分(数据字段)的指针而已,它不会像装箱操作那样涉及到任何内存字节的拷贝.然而,紧接着拆箱之后典型的操作往往就是字段拷贝,这两个操作合起来与装箱操作才成为真正的互反操作.
对一个引用类型的拆箱操作通常由以下几步组成:
1.如果该引用为null,将会抛出一个NullReferenceException异常.
2.如果该引用指向的对象不是一个期望的值类型的已装箱对象,将会抛出一个InvalidCastException异常.
3.一个指向包含在已装箱对象中值类型部分的指针被返回。该指针指向的值类型对于引用类型对象通常所具有的附加成员(即一个方法表指针和一个SyncblockIndex)一无所知.实际上,该指针指向的是已装箱对象的为装箱部分.
对一个引用类型的拆箱操作通常由以下几步组成:
1.如果该引用为null,将会抛出一个NullReferenceException异常.
2.如果该引用指向的对象不是一个期望的值类型的已装箱对象,将会抛出一个InvalidCastException异常.
3.一个指向包含在已装箱对象中值类型部分的指针被返回。该指针指向的值类型对于引用类型对象通常所具有的附加成员(即一个方法表指针和一个SyncblockIndex)一无所知.实际上,该指针指向的是已装箱对象的为装箱部分.
相关文章推荐
- 第二部分 类型与通用语言运行时----读《Microsoft.NET框架程序设计》
- 第二部分 类型与通用语言运行时2-----《Microsoft.NET框架程序设计》
- 类型与通用语言运行时
- 类型与通用语言运行时:System.Object
- (四)类型与通用语言运行时
- 类型与通用语言运行时:类型转换
- 第二部分: Dijit 1 通用属性
- 第二部分 Linux Shell高级编程技巧——第三章 运行级别脚本介绍
- 《C++捷径教程》读书笔记--Chapter 9--更多的数据类型与运算符(第二部分)
- 【C语言探索之旅】 第二部分第六课:创建你自己的变量类型
- C# 编程指南(2):语言部分:程序的通用结构
- 第一部分 基本语言 第三章 标准库类型(3.3标准库vector类型)
- 第一部分 基本语言 第二章 变量和基本类型(2.3.4变量初始化规则)
- 如何加载通用语言运行时?
- Web探索之旅 | 第二部分第二课:服务器语言
- JavaSE基础第二部分:Java基础语法之类型
- 通用线程:awk 实例,第 1 部分:一种名称很奇特的优秀语言介绍
- 【Web探索之旅】第二部分第二课:服务器语言
- 编译原理-第2部分形式语言导论-第二节文法和语言 第二小节形式语言分类
- 【C程序设计语言】第二章-类型、运行符与表达式 | 练习