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)換為值類型的過程稱為拆箱。拆箱將對(duì)對(duì)象強(qiáng)制轉(zhuǎn)換為原來的類型。對(duì)前面的對(duì)象進(jìn)行拆箱。
int newAge = (int) refAge;
string newAge =(String) refAge;
拆箱的值必須和它要轉(zhuǎn)換的目標(biāo)的變量有相同的類型。

通過上面簡單圖例講解,是不是對(duì)C#裝箱和拆箱原理有了大概的了解,如果想更深入的學(xué)習(xí),請(qǐng)查閱下面的相關(guān)文章鏈接。
相關(guān)文章
C# 封裝HtmlHelper組件:BootstrapHelper
這篇文章主要介紹了C# 封裝HtmlHelper組件之BootstrapHelper 的相關(guān)資料,需要的朋友可以參考下2016-08-08
用C#對(duì)ADO.NET數(shù)據(jù)庫完成簡單操作的方法
用C#對(duì)ADO.NET數(shù)據(jù)庫完成簡單操作的方法...2007-03-03
C#集合根據(jù)對(duì)象的某個(gè)屬性進(jìn)行去重的代碼示例
當(dāng)根據(jù)對(duì)象的Name屬性進(jìn)行去重時(shí),你可以使用以下三種方法:使用Distinct方法和自定義比較器、使用LINQ的GroupBy方法,以及使用HashSet,下面給大家介紹C#集合根據(jù)對(duì)象的某個(gè)屬性進(jìn)行去重的代碼示例,感興趣的朋友一起看看吧2024-03-03
如何在C#9 中使用頂級(jí)程序 (top-level)
這篇文章主要介紹了如何在C#9 中使用頂級(jí)程序 (top-level),幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03
桌面浮動(dòng)窗口(類似惡意廣告)的實(shí)現(xiàn)詳解
本篇文章是對(duì)桌面浮動(dòng)窗口的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

