1.1 C#中的装箱

    C#中的装箱就是把一个值类型隐式地转换为object类型,转换过程中采用的是值的拷贝而不是引用,这从下面的例子可以看出:

using System;
  public class Test
  {
    public static void Main(String[] args)
    {
       int i = 10;
       //将值类型的i装箱
       //需要注意的是:这里的装箱采用的是值的拷贝
       object obj = i;
       //检验是否装箱成功了
       if(obj is int)
       {
         Console.WriteLine("数据已经装箱!");
       }
       //我们在这里更改i的值
       i = 33;
       Console.WriteLine("int i现在的值是:{0}",i);
       Console.WriteLine("int i装箱的值是:{0}",obj);
   }
}

1.2 C#中的拆箱就是把一个对象类型显式地转换为值类型,注意:要转换的类型必须和值类型是兼容的。举例如下

 int i = 10;
 object obj = i;
 int j = (int)obj;

 

    在这里需要注意的是:

    装箱和拆箱是非常影响程序性能的,在代码中应避免装箱和拆箱的操作。可以使用泛型来减少这样的操作。