C 裝箱與拆箱

2022-03-16 01:15:21 字數 474 閱讀 4315

對於值型別與引用型別之間的轉換,可以用裝箱與拆箱技術來實現。

1.裝箱

裝箱操作是將值型別隱式地轉換為引用型別。裝箱乙個數值會為其分配乙個物件例項,並把該數值複製到新物件中。

例如:int i = 123;

object o = i;

這條裝箱語句執行的結果實在堆疊中建立了乙個物件o,該物件引用了堆上int型別的數值,而該數值是付給變數i的數值備份。

2.拆箱

拆箱操作是指顯式地把引用型別轉換為值型別。拆箱操作包括以下兩個步驟:

(1)檢查物件例項,確認他是否包裝了值型別的數。

(2)把例項中的值複製到值型別的變數中。

下面的語句演示了裝箱和拆箱操作

int i = 123 ;

object box = i;

int j = (int) box;

可以看出,拆箱正是裝箱的逆過程,但必須注意的是,裝箱和拆箱必須遵循型別相容的原則。

C 裝箱與拆箱

要掌握裝箱與拆箱,就必須了解cts及它的特點。net重要技術和基礎之一的cts common type system 顧名思義,cts就是為了實現在應用程式宣告和使用這些型別時必須遵循的規則而存在的通用型別系統。net將整個系統的型別分成兩大類 value type 和 reference type...

C 裝箱與拆箱

裝箱是將 值型別轉換為 引用型別 拆箱是將 引用型別 轉換為值型別 利用裝箱和拆箱功能,可通過允許 值型別的任何值與 object 型別 的值相互轉換,將值型別與引用型別鏈結起來 例如 int val 100 object obj val console.writeline 物件的值 obj 這是乙...

C 裝箱與拆箱

在前面提到了值型別和引用型別。這裡就來和大家一起了解一下,他們互相轉換的過程裝箱 boxing 拆箱 unboxing 由於c 中所有的資料型別都是由基類system.object繼承而來的,所以值型別和引用型別的值可以通過顯式 或隱式 操作相互轉換,而這轉換過程也就是裝箱 boxing 和拆箱 u...