C#中的装箱拆箱

在C#中,经常需要把值类型和引用类型相互转换。

首先明确两条法则:

1.引用类型总是被分配到“堆”上。

2.值类型总是分配到它声明的地方:

   a.作为引用类型的成员变量分配到“堆”上

   b.作为方法的局部变量时分配到“栈”上

1. 装箱在值类型向引用类型转换时发生,执行装箱操作时要在堆上申请内存空间,并将堆栈上的值类型数据复制到申请的堆内存空间上

2. 拆箱在引用类型向值类型转换时发生。

//装箱
object obj = 1;

//拆箱
object objValue = 4;
int value = (int)objValue;
原文地址:https://www.cnblogs.com/bincoding/p/7345999.html