值类型是高效轻量级的类型,因为默认情况下堆上不包括它们的对象组件,如果需要对象组件,使用装箱(boxing)。装箱是一种隐式转换,它接受值类型的值,根据这个值在堆上创建一个完整的引用类型对象并返回对象引用。
class Program
{
static void Main(string[] args)
{
//装箱
int i = 10;
object oi = i;
Console.WriteLine("i:{0},io:{1}",i,oi);
//装箱是创建副本
i = 12;
oi = 15;
Console.WriteLine("i:{0},io:{1}",i,oi);
Console.ReadKey();
}
}