C 回顧學習筆記二十八 裝箱和拆箱

2021-08-08 15:42:22 字數 482 閱讀 5805

裝箱和拆箱的概念經常出現在面試題中。

1.裝箱:將值型別轉換成引用型別。裝箱使得任何值型別都可以隱式地轉換為object型別或者由該值型別實現的介面型別。比如:

class program

}

如上面**的演示,上面的兩條**執行的結果就是在堆疊中建立了乙個物件obj,並引用堆上的int型別的數值。

2.拆箱:將引用型別轉換成值型別。拆箱與裝箱過程相反。拆箱是將object型別或者數值型別實現的介面型別顯式地轉換為值型別。拆箱操作經過了兩個步驟:①檢查object實力中儲存的資料,確認是給定值型別的包裝數值。②把數值從例項中複製出來。比如:

class program

}

需要注意的是,專案開發時盡量避免裝箱和拆箱,因為這兩個的過程都會對效能造成影響,如果要進行型別轉換,使用convert更好。

c 裝箱和拆箱

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

C 裝箱和拆箱

1 什麼是裝箱和拆箱 裝箱是將值型別轉換為引用型別 拆箱是將引用型別轉換為值型別 2 什麼時候需要裝箱?值型別是高效輕量的型別,因為預設情況下在堆上不包括他們的物件元件,然而,如果我們需要物件元件,這個時候就需要裝箱了。最常見的場景就是 乙個方法你希望能共用,設定的引數型別是object型別 引用型...

C 裝箱和拆箱

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