C 裝箱和拆箱

2021-08-20 13:22:19 字數 781 閱讀 6881

1、什麼是裝箱和拆箱

裝箱是將值型別轉換為引用型別 ;拆箱是將引用型別轉換為值型別 。

2、什麼時候需要裝箱?

值型別是高效輕量的型別,因為預設情況下在堆上不包括他們的物件元件,然而,如果我們需要物件元件,這個時候就需要裝箱了。

最常見的場景就是:乙個方法你希望能共用,設定的引數型別是object型別(引用型別),當你傳入的是值型別,這個時候就需要裝箱。

3、裝箱示例:

(截於《c#**教程》)

4、裝箱的實質:

(截於《c#**教程》)

5、什麼時候需要拆箱?

拆箱就是把裝箱後的物件轉換為值型別的過程,當你需要裝箱資料的值時就需要拆箱了。

最常見的場景就是:乙個方法你希望能共用,設定的引數型別是object型別(引用型別),當你傳入的是值型別,這個時候就需要裝箱;在方法體中執行引數相加,由於你傳入的object型別,需要先轉為相應的型別,這個時候就需要拆箱。

(截於《c#**教程》)

c 裝箱和拆箱

c 裝箱和拆箱 概念 裝箱 將值型別轉換為引用型別的過程叫做裝箱 值型別 引用型別 相反,拆箱 將引用型別轉換為值型別 叫做拆箱 引用型別 值型別 裝箱例子 int i 2008 object obj i console.writeline 1 i的值為,裝箱之後的值 i,obj i 927 con...

C 裝箱和拆箱

值型別例項進行裝箱時的步驟 1 在託管堆中分配記憶體。需要注意的是,由於是將值型別進行引用型別化,因而分配的記憶體空間除了值型別各個欄位所需的記憶體之外,還要加上託管堆所有物件都有的兩個額外成員 型別物件指標和同步塊索引 所需的記憶體。2 將值型別的字段複製到新分配的堆記憶體中。3 返回物件位址,即...

C 裝箱和拆箱

裝箱用於描述把乙個值型別轉換為引用型別。執行庫會為堆上的物件建立乙個臨時的引用型別 箱子 int myage 30 object myobj myage boxing拆箱用於描述相反的過程,就是把裝箱的值型別強制轉換回值型別。這裡使用術語 強制轉換 因為轉換是顯示進行的。其語法類似於前面的裝箱 in...