GrayAreas

封箱和拆箱

封箱的含义:把值类型转换为System.Object类型,或者转换为由值类型实现的结构类型.

如:struct MyStruct

{

pubilc int Val;

}

MyStruct valType1 = new MyStruct();

valType1.Val = 5;

object refType = valType1; //把值类型的结构放入object类型的变量中,以封箱它.

拆箱的含义:是和封箱做相反的操作.

如:valType.Val = 6; //对原值类型进行赋值

MyStruct valType2 = (MyStruct)refType; //拆箱到新变量中

Console.WriteLine("valType2.Val = {0}",valType2.Val);

封箱的作用:允许在项目类型是object的集合(例:ArrayList)中使用值类型,一个内部机制允许在值类型上调用object,例如int和结构.

注意:封箱值变量而创建的对象,只包含值类型变量的一个副本的引用,而不包含原值类型变量的引用,封箱是隐式转换,拆箱是显式转换,在访问值类型内容前,必须进行拆箱.

posted on 2015-11-24 21:44  GrayAreas  阅读(423)  评论(0)    收藏  举报

导航