C#中的拆箱和裝箱怎么理解?

拆箱是把“引用”類型轉(zhuǎn)換成“值”類型,

裝箱是把“值”類型轉(zhuǎn)換成“引用類型” 


原因是有時(shí)某些方法的參數(shù)要求使用“引用”類型,

而你想把“值”類型的變量通過(guò)這個(gè)參數(shù)傳入,就需要使用這個(gè)操作。 


拆箱和裝箱 其實(shí)就是類型轉(zhuǎn)換 在C#里那么叫 

裝箱:低類型-->高類型 例:object i="aa"; 
這個(gè)是 string --> object 叫裝箱 

拆箱:高類型-->低類型 例:String i=(String)object; 
這個(gè)是 string --> int 叫拆箱 

例如: 
bool aa=true; 
object bb=aa; //裝箱 
bool cc=(bool)bb; //拆箱 


注意:

裝箱時(shí)生成的是全新的引用對(duì)象,這會(huì)有時(shí)間損耗,也就是造成效率降低。

因此避免在循環(huán)體內(nèi)使用裝箱和拆箱,或者采用提前裝箱方式進(jìn)行優(yōu)化,

也可以通過(guò)重載函數(shù)和泛型來(lái)避免裝箱與拆箱。



原文鏈接:C#中的拆箱和裝箱怎么理解?