C#中的类型转换

    C#中的数据转换类型可以分为以下3种:隐式转换、显式转换、装箱和拆箱。

三种语言数据转换类型对比




隐式转换

 

    (1)这个比较简单且容易理解,以前老师也讲过。隐式转换是系统默认的、不需要加以声明就可以转换。在准换过程中编译器不需要对转换进行详细的检查就能安全地执行转换,Eg数据从int转换到long类型的转换。

    (2)C#中支持的隐式转换类型:



显示转换


    (1)即强制转换。需要用户明确指定转换类型。

     Eg:

        (int)1.23  //将double类型的1.23转换成int类型,结果为1

    (2)注意:显示转换可能会导致错误

              如果整形值超出目标类型的范围,转换异常

装箱和拆箱

    (1)装箱:是将一个值类型的数据隐式转换成一个对象类型的数据。把一个值类型装箱就是创建一个object类型的实例,并把该值类型的值赋给这个object对象。

Eg:

Int I = 10;
Object obj = i;             //隐式转换装箱


Int I = 10;
Object obj = (object)i;      //显式转换装箱

    分析:i及其值10是在栈空间中分配的,obj是引用类型变量,也是在栈空间中分配的,i装箱后变为引用类型,在堆空间中分配相应的空间,obj中包含地址。

   (2)拆箱:将引用类型的数据显式转换成一个值类型数据。分为两步:首先检查对象实例,确保它是给定值类型的一个装箱值,然后把实例类型复制到值类型数据中。

Eg:

Object obj = 10;
Int I = (int)obj;            //显示转换拆箱

   (3)区别:装箱隐式或显式转换均可,拆箱只能是显式转换。


  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值