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

拆箱是把“引用”类型转换成“值”类型,

装箱是把“值”类型转换成“引用类型” 


原因是有时某些方法的参数要求使用“引用”类型,

而你想把“值”类型的变量通过这个参数传入,就需要使用这个操作。 


拆箱和装箱 其实就是类型转换 在C#里那么叫 

装箱:低类型-->高类型 例:object i="aa"; 
这个是 string --> object 叫装箱 

拆箱:高类型-->低类型 例:String i=(String)object; 
这个是 string --> int 叫拆箱 

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


注意:

装箱时生成的是全新的引用对象,这会有时间损耗,也就是造成效率降低。

因此避免在循环体内使用装箱和拆箱,或者采用提前装箱方式进行优化,

也可以通过重载函数和泛型来避免装箱与拆箱。