C#学习笔记之类型转换

本文详细介绍了C#中的类型转换,包括隐式类型转换和显示类型转换。在数值类型中,小容量可以隐式转换为大容量,但decimal与float和double之间不直接转换。对于引用类型,子类可以隐式转换为父类或接口,但可能导致错误。装箱是值类型转换为引用类型的过程,而拆箱则是反之。显示类型转换可能需要强制转换,且在引用类型转换中,应当使用is关键字检查类型后再进行转换,以防止错误。as关键字用于安全的类型转换,转换失败时返回null。
摘要由CSDN通过智能技术生成

什么是类型转换?

两个不同类型的变量赋值,如大空间的值赋给小空间的值,子类的对象赋给父类的对象

eg:

在这里插入图片描述

隐式类型转换

数值类型

小容量转大容量 可以隐式转换

在这里插入图片描述

特殊:

decimal的精度比double大,但所能储存的最大数却比double要小(double虽然64位,但其精度低,故其可以表示的范围大,decimal虽然是128位,但由于其用了较多的位来表示其精度,只好牺牲表示范围了),所以虽然decimal容量精度大,但是并不能在float&double 和 decimal 间隐式转换。

引用类型

子类可以隐式转换成继承父类和实现的接口,但是转换之后调用子类特有的属性和方法会报错

举例在下方显示类型转换。

装箱

其实装箱就是一个 值类型 隐式转换引用类型 的过程。

c#中使用类型都派生自object类型,但是值类型是高效轻量的类型,在堆上没有存放对象数据,而它转换成引用类型时就需要 装箱 来将数据拷贝一份到堆内存,再将堆内存地址赋给引用类型对象。

在这里插入图片描述

显示类型转换

数值类型

在上面数值类型隐式转换图里没有直达箭头的都是强制转换 ^ ^ ~

plan1:

目标类型 变量名 = (目标类型) 源类型变量或值

plan2:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值