1.装箱
装箱的核心是把值类型转换为对象类型,或者转换为由值类型执行的接口类型。把一个值类型的值装箱,也就是创建一个对象并把这个值赋给这个对象。常见的装箱转换有4种:
·从任何值类型转换为对象类型;
·从任何值类型转换为System.ValueType类型;
·从任何值类型转换为值类型实现的任何接口类型;
·从任何枚举类型转换为System.Enum类型;
需要注意的是,装箱转换意味着复制一个欲被装箱的值。这与从引用类型转换为对象类型有着很大的不同。在后者中,转换后的值继续引用同一实例,只是将它当成对象类型而已。
下面举例说明装箱操作的实现:
int i = 100;
object obj = i;2.拆箱
拆箱相对于装箱是一个相反的过程,其核心是将引用类型转换为值类型,或者是将一个接口类型转换为一个实现该接口的值类型。常见的拆箱操作有4种:
·从对象类型转换为任何值类型;
·从System.ValueType类型转换为任何值类型;
·从任何接口类型转换为实现该接口的任何值类型;
·从System.Enum类型转换为任何枚举类型;
拆箱的过程分为两个步骤:一是检查对象实例是否是给定的值类型的装箱值;二是将值从对象实例中复制出来。下面列举一个简单的拆箱操作实现。
int i = 100;
object obj = i;
int j = (int)obj;摘自:郝刚.2006.《ASP.NET 2.0 开发指南》.人民邮电出版社.53~54
评论(0)
暂无评论。