装箱拆箱

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

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

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

int i=10;

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

int j = obj;//错误

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

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

原文地址:https://www.cnblogs.com/qiu18359243869/p/13163610.html