裝箱與拆箱

目錄

  • 生活中的裝箱與拆箱

  • C# 的裝箱與拆箱

  • 值類型和引用類型

  • 裝箱

  • 拆箱

 

生活中的裝箱與拆箱

     我們習(xí)慣了在網(wǎng)上購物,這次你想買本編程書 -- 《C 語言從入門到放棄》 ,下單成功后,賣家會幫你將這本入坑指南打好包裝,我們可以稱之為裝箱;經(jīng)過快遞員的快馬加鞭,風(fēng)雨無阻,包裹就直接送到你手上了。你一定會以迅雷不及掩耳盜鈴兒響叮當(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 或者接口類型的一個過程。當(dāng) CLR 對值類型進(jìn)行裝箱時,會將該值包裝為 System.Object 類型,再將包裝后的對象存儲在堆上。 拆箱就是從對象中提取對應(yīng)的值類型的一個過程。

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

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

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

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

        static void Main(string[] args)