封箱的含义:把值类型转换为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和结构.
注意:封箱值变量而创建的对象,只包含值类型变量的一个副本的引用,而不包含原值类型变量的引用,封箱是隐式转换,拆箱是显式转换,在访问值类型内容前,必须进行拆箱.
时间: 2024-11-03 21:52:48