首页 > 代码库 > C#的装箱和拆箱
C#的装箱和拆箱
谈到装箱拆箱,大概的意思就是值类型和引用类型的相互装换——值类型到引用类型叫装箱,反之就叫拆箱。
1.类型的理解
既然是类型之间的相互转换,那首先就要说清楚类型。我们都知道Sysyem.Object类型是所有内建类型的基类。那么如何区分值类型和引用类型呢?最简单的一个区分标准就是所有的值类型都继承自System.Value,也就是说所有继承自System.ValueType的类型都是值类型,而其他类型都是引用类型。
简单的说:
(1)值类型:整型:Int;长整型:long;浮点型:float;字符型:char;布尔型:bool;枚举:enum;结构:struct;它们统一继承 自System.ValueType。
(2)引用类型:数组,用户定义的类、接口、委托,object,字符串等。
2.装箱和拆箱的深入理解
Object obj = 1;
这行语句将整型常量1赋给object类型的变量obj;我们知道常量1是值类型,值类型是要放在栈上的,而object是引用类型,它需要放在堆上;要把值类型放在堆上就需要执行一次装箱操作。
要在运行时成功拆箱值类型,被拆箱的项必须是对一个对象的引用,该对象是先前通过装箱该值类型的实例创建的。
下面举一个例子:
C#的装箱和拆箱
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。