装箱拆箱

值类型赋值给Object类型变量的时候,会发生装箱:包装成Object。ValueType不也是继承自Object吗(CLR内部处理); 

Object类型变量赋值给值类型赋值的时候会发生拆箱,需要做显式转换。 

下面几句代码有没有错,解释一下内存是怎么变化的

int i=10;

object obj = i;//装箱 内存由栈内存转为堆内存

int j = obj;//错误

long j = (long)obj;//错误 拆箱的时候要和装箱时的数据类型一样

int j = (int)obj;//拆箱 内存由堆内存转为栈内存

 

posted @ 2020-06-19 16:10  厦门哈韩  阅读(104)  评论(0编辑  收藏  举报