为了便于文章的开展,首先介绍装箱(Boxing)和拆箱(Unboxing)这两个名词。.Net的类型分为两种,一种是值类型,另一种是引用类型。这两个类型的本质区别,值类型数据是分配在栈中,而引用类型数据分配在堆上。那么如果要把一个值类型数据放到堆上,就需要装箱操作;反之,把一个放在堆上的值类型数据取出来,则需要进行拆箱操作。
例如,对于如下简单的装箱和拆箱操作语句。
\n
int i = 123;
object obj = i;//Boxing
if( obj is int )
int j = (int) obj;//Unboxing\n
object obj = i;//Boxing
if( obj is int )
int j = (int) obj;//Unboxing\n