装箱转换是指将一个值类型隐式地转换成一个object类型,或者把这个值类型转换成一个被该值类型应用的接口类型(interface-type)。把一个值类型的值装箱,也就是创建一个object实例并将这个值复制给这个object,比如:
int i=10;
object obj=i;
用下图可以表示装箱的过程:
我们也可以用显式的方法来进行装箱操作:
int i=10;
object obj=object(i);
我们可以假想存在一个boxing类型,其声明如下:
class T_Box
{
T value;
T_Box(Tt){
value=t;
}//该类型的构造函数
}
这里T表示将要装箱的值的类型,它可以是int、char、enum等等。现在我们要将类型为T的值v装箱,其执行过程为:执行new T_Box(v),将返回结果的实例作为对象类型的值,那么下面的语句:
int i=10;
object obj=i;
等价于:
int i=10;
object obj=new int_Box(i); //装i装箱成对象obj
我们看一下下面的程序。
程序清单4-4:
using System class Test{ public static void Main(){ int i=10; object obj=i; //对象类型 if(obj is int){ Console.Write("The value of i is boxing!"); } i=20; //改变i的值 Console.WriteLine("int:i={0}",i); Console.WriteLine("object:obj={0}",obj); } } 输出结果为: The value of i is boxing! int:i=20; object:obj=10; 这就证明了,被装箱的类型的值是作为一个拷贝赋给对象的。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索int
, object
, 类型
, obj
, 装箱
一个
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。