装箱和拆箱的概念和原理
摘要:
装箱的过程为:1. 分配内存: 在托管堆中分配好内存,内存的大小是值类型的各个字段需要的内存量加上托管堆的所有对象都有的两个额外成员—类型对象指针和同步块索引—所需要的内存量之和。2. 复制对象: 将值类型的字段复制到新分配的内存中。3. 返回地址: 将已装箱的值类型对象的地址返回给引用类型的变量。拆箱的过程为:1. 检查实例:首先检查变量的值是否为null,如果是则抛出NullReferenceException异常;再检查变量的引用指向的对象是不是给定值类型的已装箱对象,如果不是,则抛出InvalidCastException异常。2. 返回地址:返回已装箱实例中属于原值类型字段的地址,而 阅读全文
posted @ 2014-03-14 15:30 riky1989 阅读(422) 评论(0) 推荐(0)