C#之装箱与拆箱

C#之装箱与拆箱


          装箱与拆箱

          装箱和拆箱是C#类型系统的核心概念,是将值类型的数据转换为引用类型的数据,或者将引用类型数据转换成值类型的数据的操作。

          这种相互转换可以在两类数据间建立一个等价连接,本质上,是将所有数据视为对象。


          装箱转换

          指将一个值类型数据隐式转换为Object类型,或者该值类型应用的接口类型interface-type将其装箱,也就是创建一个基于该值类型的Object实例的过程。

          比如:将值类型变量chData的值赋予对象objData

          Char chData = 'a'

          Object objData =chData

          Console.WriteLine(objData)

          第二行的赋值暗示调用一个装箱操作,chData字符变量的值被复制给ojbData对象,字符变量和对象都同时存储在栈中,但是,对象ojbData的值却留在堆中。


          拆箱转换

          装箱转换的逆操作,指将一个对象类型显式的转换成一个值类型的数据,或者是将一个接口类型,显式的转换成一个执行该接口的值类型。

          拆箱的过程分为两步,首先,需要检查对象实例,判断是否为给定的值类型的装箱,然后再将实例的值赋给值类型变量。

          比如:一个简单的拆箱过程

          Int intData = 5

          Object objData = intData

          Int intData2 = (int) objData

          拆箱转换过程,与装箱过程相反。

          注意,装箱转换和拆箱转换,必须遵循类型兼容原则,否则,会造成编译异常。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值