1. 程式人生 > >C#中的裝箱拆箱

C#中的裝箱拆箱

局部變量 bsp -s spa clas 發生 app 拆箱 b-s

在C#中,經常需要把值類型和引用類型相互轉換。

首先明確兩條法則:

1.引用類型總是被分配到“堆”上。

2.值類型總是分配到它聲明的地方:

a.作為引用類型的成員變量分配到“堆”上

b.作為方法的局部變量時分配到“棧”上

1. 裝箱在值類型向引用類型轉換時發生,執行裝箱操作時要在堆上申請內存空間,並將堆棧上的值類型數據復制到申請的堆內存空間上

2. 拆箱在引用類型向值類型轉換時發生。

//裝箱
object obj = 1;

//拆箱
object objValue = 4;
int value = (int)objValue;

C#中的裝箱拆箱