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