码迷,mamicode.com
首页 > Windows程序 > 详细

C#的装箱和拆箱

时间:2017-08-10 13:31:23      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:布尔   http   nbsp   1.5   技术分享   创建   font   引用类型   枚举   


       谈到装箱拆箱,大概的意思就是值类型和引用类型的相互装换——值类型到引用类型叫装箱,反之就叫拆箱。

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#的装箱和拆箱

标签:布尔   http   nbsp   1.5   技术分享   创建   font   引用类型   枚举   

原文地址:http://www.cnblogs.com/a--bird/p/7338266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!