装箱拆箱的问题
装箱是将值类型转换为引用类型,拆箱是将引用类型转为值类型。 
 这样说对吗?
------解决方案--------------------对的,意思是这样的 
 装箱: 
 int a = 1; 
 object obj = a;   
 拆箱: 
 int a = (int)obj;
------解决方案--------------------不准确! 
 装箱:值类型到object类型或到此值类型所实现的任何接口类型的隐式转换 
 拆箱:从object类型到值类型或从接口类型到实现该接口的值类型的显式转换 
 引用类型包括object,class,string,interface,delegate
------解决方案--------------------那说说,为什么 C++ 和 Java 都有没有 boxing 和 unboxing 的概念吧,为什么 C# 偏偏要设计一个值类型出来? 
 --------------- 
 性能...当然是为了性能...不过装拆箱对性能的影响更偏重于大型的程序和软件... 
 另外就是安全...值类型在编译时就指定了内存分配的大小并由系统自动释放...   
 值类型和引用类型在实例化的时候是存储在不同的空间中的,值类型存储在Stack上,而引用类型是存储在Heap上,在装箱的过程中实际上是将在Stack上的值类型对象拷贝到Heap上,并以引用对象的存储格式保存,在这个过程中对所转换的引用类型对象进行修改操作,Stack上的值类型对象是不会变化的。而拆箱是将引用对象的值在拷贝回Stack上...   
 理解了装拆箱和Stack、Heap之间的关系你就明白为什么了...