c#入门-类型转换

基于继承的类型转换

继承是c#的一项功能,简单概括是当一个类继承另一个类后,会获得他的所有东西。
相较于手写所有东西,手写可能遗漏。而继承能保证一定会有所有东西。

例如香蕉,继承了水果。水果有什么特点,香蕉就有什么特点。
所以香蕉可以当作水果来用。一个水果类型的变量,可以装香蕉类型的值。
基于此特点的变量装值,他就是这么装进去了,什么也不会发生。

但是,在你使用变量的时候,你只能使用变量类型的东西。
因为编译器不知道这个变量的值实际上装了个什么类型。

隐式转换

香蕉是水果,所以水果可以装香蕉。此过程是一定安全的。
于是你直接写就可以了。
在这里插入图片描述

强制转换

水果装香蕉,这个就不一定能成功。苹果也是水果,如果你拿着苹果转香蕉,就会出错。
此过程需要强制转换表达式来指明。继承的强制转换,如果类型不符合就会出错。
在这里插入图片描述
写法是用在值前面加一个前置括号,表示要转换的类型。

自定义的转换

自定义转换是人为控制的转换。可以随便写,可能出现和预期不合的情况。
当然这是说如果交给你乱写。官方写的自定义转换还是和预期相符合的。

自定义转换和继承转换的区别在于,自定义转换会执行操作
判断有没有自定义转换的方式是看他点出来的运算符。
在这里插入图片描述

自定义隐式转换

隐式转换通常意味着这样转换很安全,很能符合人们预期的结果。
例如从char到int。
char是16字节存储。这个数字最大值就是6万5千多。
而int的最大值是21亿。任何情况下都可以包容。

自定义显式转换

double类型能储存的最大值比int类型大。
那么用double类型转为int类型,则可能出现不符合预期的结果。

显式转换同样需要强制转换表达式来注明。
在这里插入图片描述

方法转换

自定义转换和继承转换都是不会出错的(不乱写的情况下)。
专门为他们写了这种方法说明这些类型之间有很亲密的关系。

但方法,就说明这两种类型没多少关系了。
例如文字转数字,只能一个字一个字地去拆。
这种概念类似于屏幕识图,不止可能与预期不符了,甚至可能出错。

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值