[我眼中的C#]显式转换和隐式转换

上节介绍了15中基础的变量类型,那么这些变量之间如何转换呢?下面我们来介绍一下。
转换分为显式转换和隐式转换,显式转换就是需要我们通过代码去控制的使其变量类型发生改变的转换,而隐式转换不需要我们去操作,编译器会自动执行。
先介绍一下值类型之间的转换,进行转换的原则就是内存的空间能够放的下,上节我们了解了不同变量都有它的取值范围,如果我们将一个int(假设值是2147483646)类型的变量 赋值给一个short(最大存储的是32767)类型的变量,因为内存空间不够用了,所以编译器就会报错,所以我们需要进行强制转换。反之则是可以的,因为无论如何short类型的变量都不会超过使int类型的范围,所以可以直接转换(隐式转换)。
以盒子为例,小盒子里的东西一定能装到大盒子里面,而大盒子里的东西未必能装到小盒子里面。
这里写图片描述
对于引用类型,引用类型的类之间没有所谓的大小,只有父子关系,子类可直接转换为父类,而父类需要进行强制类型转换为子类才能进行,但是有的时候类型之间根本不能匹配,编译器在运行时就会报错,这是我们可以使用as关键字进行转换(A a=b as A;),即使类型不匹配,也不会报错,而只会传入一个空的值null。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值