c#开发日记:c#中装箱和拆箱定义详解

装箱

用于在垃圾回收堆中存储值类型。装箱是值类型到 object 类型或到此值类型所实现的任何接口类型的隐式转换。

例子如下:

int a = 1;  
object b = a;  
Console.WriteLine ("b的值为: {0}", b);

##将a装箱

拆箱

例子如下:

int a = 1;  
object b = a;  
int c = (int) b;  
Console.WriteLine ("c的值为: {0}", c);  

##前两步将a装箱,最后一步将b拆箱

总结

<1> 被装过箱的对象才能被拆箱
<2> c#中的数据类型划分为值类型和引用类型,对应的c#中内存分配为两种方式,一是栈,二是托管堆。值类型只会在栈中分配。引用类型分配内存与托管堆。托管堆对应于垃圾回收
<3> 装箱和拆箱就是把值类型转为引用形或把引用形转为值,就是为了通用,但是会影响效率。虽然书上说尽量减少使用,其实大部分情况下不计较这个。因为如把一个方法的参数设置为object实在太方便,装箱的目的,是为了解决未知参数类型传入的问题,装箱操作的产生有它的历史性.但是目前,已经重载和泛型,所以装箱已经没有使用的太大意义了.因为装箱的过程会产生额外的系统消耗,影响效率.

你可能感兴趣的:(前端开发,c#学习,c#,开发语言,jvm)