什麼是拆箱和裝箱 舉例說明

2021-09-25 09:08:41 字數 910 閱讀 6782

1.裝箱,值型別向引用型別轉換:

在託管堆中分配記憶體,分配的記憶體量是型別各字段所需的記憶體量+型別物件指標所需的記憶體量+同步塊索引所需的記憶體量。

值型別的字段複製到分配好的記憶體中

返回物件位址,現在物件位址是物件引用

2.拆箱,引用型別向值型別轉換:

獲取已裝箱型別中的未裝箱部分,也就是物件的原始值的各個字段

複製欄位的值從堆中到棧中的值型別例項中

//裝箱的例子

//裝箱允許將值型別隱式轉化成引用型別還是在main方法裡面

iint i = 2008;

object obj = i;

console.writeline("1.i的值為,裝箱之後的物件為",i,obj);

i = 927;

console.writeline("2.i的值為,裝箱之後的物件為",i,obj);

console.readkey();

//程式執行結果

的值為2008,裝箱之後的物件為2008.

的值為927,裝箱之後的物件為2008

//拆箱例子

//拆箱允許將引用型別顯示轉換為值型別,下面通過乙個例項演示拆箱的過程

int i = 112;

object obj = i;

console.writeline("裝箱操作:值為,裝箱之後的物件為",i,obj);

int j = (int)obj;

console.writeline("拆箱操作,裝箱的物件為,值為", obj, j);

console.readkey();

//程式執行後的結果

//裝箱操作:值為112,裝箱之後物件為112

//拆箱操作:裝箱物件為112,值為112

什麼是裝箱和拆箱

裝箱 boxing 和拆箱 unboxing 是.net提出得新概念!net的所有型別都是由基類system.object繼承過來的,包括最常用的基礎型別 int,byte,short,bool等等,就是說所有的事物都是物件。如果申明這些型別得時候都在堆 heap 中分配記憶體,會造成極低的效率!個...

C 核心概念 裝箱和拆箱 什麼是裝箱和拆箱

裝箱 boxing 和拆箱 unboxing 是c 型別系統的核心概念.是不同於c與c 的新概念!通過裝箱和拆箱操作,能夠在值型別和引用型別中架起一做橋梁.換言之,可以輕鬆的實現值型別與引用型別的互相轉換,裝箱和拆箱能夠統一考察系統,任何型別的值最終都可以按照物件進行處理.c 語言中的所有型別都是由...

C 核心概念 裝箱和拆箱 什麼是裝箱和拆箱

文章 http www.cnblogs.com xiaoshi archive 2008 05 28 1208902.html 裝 箱 boxing 和拆箱 unboxing 是c 型別系統的核心概念.是不同於c與c 的新概念!通過裝箱和拆箱操作,能夠在值型別和引用型別中架起一做橋梁.換言之,可以輕...