裝箱與拆箱

目錄

  • 生活中的裝箱與拆箱

  • C# 的裝箱與拆箱

  • 值類型和引用類型

  • 裝箱

  • 拆箱

 

生活中的裝箱與拆箱

     我們習(xí)慣了在網(wǎng)上購物,這次你想買本編程書 -- 《C 語言從入門到放棄》 ,下單成功后,賣家會(huì)幫你將這本入坑指南打好包裝,我們可以稱之為裝箱;經(jīng)過快遞員的快馬加鞭,風(fēng)雨無阻,包裹就直接送到你手上了。你一定會(huì)以迅雷不及掩耳盜鈴兒響叮當(dāng)之勢(shì)拆開包裝,這個(gè)過程我們可以稱之為拆箱,這時(shí),入坑指南就順利的送到你手上。

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

 

 

C# 的裝箱與拆箱

  裝箱:將值類型(如 int ,或自定義的值類型等)轉(zhuǎn)換成 object 或者接口類型的一個(gè)過程。當(dāng) CLR 對(duì)值類型進(jìn)行裝箱時(shí),會(huì)將該值包裝為 System.Object 類型,再將包裝后的對(duì)象存儲(chǔ)在堆上。 拆箱就是從對(duì)象中提取對(duì)應(yīng)的值類型的一個(gè)過程。

  裝拆箱就是一個(gè)相反的過程。裝箱是隱式的;拆箱必定是顯式的。 

  相對(duì)于簡(jiǎn)單的賦值而言,裝箱和拆箱都需要進(jìn)行大量的數(shù)據(jù)計(jì)算。對(duì)值類型進(jìn)行裝箱時(shí),CLR 必須重新分配一個(gè)新的對(duì)象。拆箱所需的強(qiáng)制轉(zhuǎn)換也需要進(jìn)行大量的計(jì)算,只是相比,程度不高,并且也可能會(huì)出現(xiàn)類型轉(zhuǎn)換的異常情形。如果你的操作正處于循環(huán)的中心,通過測(cè)試(如:Stopwatch),你會(huì)很明顯的感覺到性能問題。

  .NET 2.0 引入的泛型其實(shí)在很大的程度上解決了裝拆箱產(chǎn)生的類型轉(zhuǎn)換問題,也減少了類型轉(zhuǎn)換所引起的運(yùn)行時(shí)的異常,從而提高了性能。

移動(dòng)開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

        static void Main(string[] args)