首页 > 代码库 > C#中的装箱拆箱

C#中的装箱拆箱

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

 

首先明确两条法则:

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

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

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

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

 

 

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

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

 

//装箱
object obj = 1;

//拆箱
object objValue = http://www.mamicode.com/4;
int value = http://www.mamicode.com/(int)objValue;

 

C#中的装箱拆箱