装箱(Boxing)和拆箱(Unboxing)是C#类型系统中重要的概念。它允许将任何类型的数据转换为对象,同时也允许任何类型的对象转换到与之兼容的数据类型。
1.装箱
装箱转换是指将一个值类型的数据隐式地转换成一个对象类型(object)的数据。
例如:
int i=20;
object o=i;
2.拆箱
拆箱转换是一个与装箱转换相反的操作,拆箱用于把object类型转换为数值类型,或者把任意接口类型转换成一个执行该接口的数值类型。int i=20;
object o=i;
int i=(int)o;
值类型与引用类型
1、值类型包括原类型(Sbyte、Byte、Short、Ushort、Int、Uint、Long、Ulong、Char、Float、Double、Bool、Decimal)、枚举(enum)、结构(struct)。
2、引用类型包括类、数组、接口、委托、字符串等。