日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

C#裝箱拆箱

系統(tǒng) 3133 0

C#中的數(shù)據(jù)類型包括值類型、引用類型和指針類型,而指針類型只有在不安全代碼中使用。值類型包括簡(jiǎn)單類型、結(jié)構(gòu)和枚舉,引用類型包括類、接口、委托、數(shù)組和字符串等。為了保證效率,值類型是在棧中分配內(nèi)存,在聲明時(shí)初始化才能使用,不能為NULL,而引用類型在堆中分配內(nèi)存,初始化時(shí)默認(rèn)為NULL。值類型超出作用范圍系統(tǒng)自動(dòng)釋放內(nèi)存,而引用類型是通過(guò)垃圾回收機(jī)制進(jìn)行回收。由于C#中所有的數(shù)據(jù)類型都是由基類System.Object繼承而來(lái)的,所以值類型和引用類型的值可以相互轉(zhuǎn)換,而這轉(zhuǎn)換過(guò)程也就是所謂的裝箱和拆箱。
裝箱轉(zhuǎn)換
裝箱就是將一個(gè)值型變量隱式地轉(zhuǎn)換為引用類型對(duì)象,雖然也可以顯示轉(zhuǎn)換,但一般都不需要使用到。對(duì)值類型進(jìn)行裝箱會(huì)在堆中分配一個(gè)對(duì)象實(shí)例,并將該值復(fù)制到新的對(duì)象中。
例如:

class TestBoxing
{
static void Main()
{
int i = 123 ;
object o = i; // 隱式裝箱
i = 456 ; // 改變i的內(nèi)容
System.Console.WriteLine( " 值類型的值為 {0} " , i);
System.Console.WriteLine(
" 引用類型的值為 {0} " , o);
}

}

結(jié)果輸出:
值類型的值為 456
引用類型的值為 123

裝箱操作如下圖所示
C#裝箱拆箱
取消裝箱
取消裝箱就是從引用類型到值類型的顯式轉(zhuǎn)換。取消裝箱操作先檢查對(duì)象實(shí)例,確保它是給定值類型的一個(gè)裝箱值,然后將該值從實(shí)例復(fù)制到值類型變量中。
例如:

class TestUnboxing
{
static void Main()
{
int i = 123 ;
object o = i; // 隱式裝箱
try
{
int j = ( short ) o; // 試著取消裝箱
System.Console.WriteLine( " 取消裝箱成功. " );
}

catch (System.InvalidCastException e)
{
System.Console.WriteLine(
" {0} 錯(cuò)誤: 不正確的取消裝箱. " , e.Message);
}

}

}

結(jié)果輸出:
指定的轉(zhuǎn)換無(wú)效。錯(cuò)誤:不正確的取消裝箱。
要將int j = (short) o 改為int j = (int) o 就會(huì)顯示取消裝箱成功。

取消裝箱如圖所示:
C#裝箱拆箱

在網(wǎng)上查資料的時(shí)候在CSDN上看到個(gè)解釋裝箱和拆箱的解釋,如下所示:

// “小范圍”變量int,“大范圍”變量double
int a = 10 ;
double b;
b
= a; // 這叫裝箱,“小”的放入“大”的,呵呵
int a;
double b = 10 ;
a
= ( int )b; // 這叫拆箱,“大”的放入“小”的,亂放或放錯(cuò)了可不行哈,呵呵


能把強(qiáng)制類型轉(zhuǎn)換解釋成裝箱拆箱實(shí)在覺得很有趣,就做個(gè)反面的例子吧。

C#裝箱拆箱


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 长沙市| 安陆市| 肇州县| 崇阳县| 龙里县| 鸡泽县| 阿克苏市| 高碑店市| 呼玛县| 芜湖县| 吉木萨尔县| 道真| 棋牌| 武胜县| 青岛市| 石河子市| 大埔县| 阳新县| 南投市| 林西县| 京山县| 息烽县| 台安县| 龙川县| 梓潼县| 奇台县| 遵义市| 志丹县| 玛沁县| 墨江| 东城区| 肃北| 赤水市| 邵东县| 肥西县| 花莲市| 钦州市| 和顺县| 拜城县| 铜梁县| 高邮市|