C#裝箱和拆箱原理詳解
.NET包含一個(gè)特殊的Object類,可以接受任意的數(shù)據(jù)類型的值,當(dāng)所傳遞或所賦值的類型不是一個(gè)特定的數(shù)據(jù)類型時(shí),object類就提供了一種傳遞參數(shù)和賦值的通用方法。賦給object的值必須作為引用類型,并存放砸托管堆中。
裝箱:
int age = 24;
object refAge= age;
可以看的出,第一條語句創(chuàng)建一個(gè)變量age,并將值放在托管棧中;
第二條語句將age的值賦給引用類型。它將值24放在托管堆中。
這個(gè)值類型包裝為引用類型的過程,稱為裝箱。
拆箱:
相反,將引用類型轉(zhuǎn)換為值類型的過程稱為拆箱。拆箱將對對象強(qiáng)制轉(zhuǎn)換為原來的類型。對前面的對象進(jìn)行拆箱。
int newAge = (int) refAge;
string newAge =(String) refAge;
拆箱的值必須和它要轉(zhuǎn)換的目標(biāo)的變量有相同的類型。
通過上面簡單圖例講解,是不是對C#裝箱和拆箱原理有了大概的了解,如果想更深入的學(xué)習(xí),請查閱下面的相關(guān)文章鏈接。
相關(guān)文章
使用C#的正則表達(dá)式驗(yàn)證中文字符(實(shí)例代碼)
本文通過實(shí)例代碼給大家介紹了使用C#的正則表達(dá)式驗(yàn)證中文字符的方法,需要的的朋友參考下吧2017-07-07基于mvc5+ef6+Bootstrap框架實(shí)現(xiàn)身份驗(yàn)證和權(quán)限管理
最近剛做完一個(gè)項(xiàng)目,項(xiàng)目架構(gòu)師使用mvc5+ef6+Bootstrap,用的是vs2015,數(shù)據(jù)庫是sql server2014。下面小編把mvc5+ef6+Bootstrap項(xiàng)目心得之身份驗(yàn)證和權(quán)限管理模塊的實(shí)現(xiàn)思路分享給大家,需要的朋友可以參考下2016-06-06C#向線程中傳遞多個(gè)參數(shù)的解決方法(兩種)
這篇文章主要介紹了C#向線程中傳遞多個(gè)參數(shù)的解決方法(兩種)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07C#/VB.NET實(shí)現(xiàn)從PPT中提取圖片的示例代碼
PPT是用于制作幻燈片(演示文稿)的應(yīng)用軟件,每張幻燈片中都可以包含文字、圖形、圖形、表格、聲音和影像等多種信息。本文主要介紹了如何實(shí)現(xiàn)從PPT中提取圖片的功能,需要的可以參考一下2023-03-03