【C#】类型转换

       在C#语言中,由于C#在编译时是静态类型化的,因此变量在声明之后无法再次声明,或者无法用于存储其他类型的值,除非该类型可以转换为变量的类型,例如,您可能有一个整数变量,需要将变量传递给参数类型化为double的方法。或者可能需要将类变量赋给接口类型的变量,这些理性的操作称为“类型转换”。就是说一些预定义的数据类型之间存在着预定义的转换。载C#中,可以执行以下几种类型的转换

隐式类型转换

  可以通过消除不必要的类型转换来提高代码的可读性。但是,因为隐式转换不需要程序员将一种类型显示强制转化为另一种类型,所以一般情况下,隐式转换从不丢失信息。其中包括隐式数值转换、隐式枚举转换、隐式引用转换

  隐式数值转换:定义:隐式转换就是系统默认的,不需要加以声明就可以进行的转换。由于该转换时一种安全类型的转换,不会导致数据丢失,因此不需要任何特殊的语法。但是有一定的规则其中,从int,uint或long到float以及从long到double之间的转换可能会导致精度下降,但绝不会引起数量上的丢失。其它的隐式转换值则不会有任何信息丢失。结合我们在数据类型中学到的值类型的范围,我们可以防线,隐式数值准换实际上就是从低精度的数值类型到高精度的数值类型的准换。 从上面的10条例可看出,不存在到char类型的隐式转换,这意味着其他整型值不能自动转换为char类型,这一点特别注意

  隐式枚举转换:隐式枚举转换允许把十进制整数0转换成任何枚举类型。对应其它的整数则不存在这种隐式转换。   

     隐式引用转换:是指一类引用类型之间的转换,这种转换总是可以成功,因此不需要再运行时进行检查。引用转换无论是隐式还是显示的,都不会更改基础对象的运行时类型;它只更改用于该对象的引用的值得类型

显示类型转换

                显示类型转换,又叫强制类型转换,与隐式转换正好相反,显示转换需要用户明确指定转换的类型。如果进行转换可能会导致信息丢失,则编译器会执行显式转换

     显示数值转换: 是指当不存在相应的隐式转换时,从一种数字类型到另一种数字类型的转换

     显示枚举转换:显示枚举实际上是枚举类型的元素类型与相应类型之间的隐式或显示的转换

     显示引用转换:引用类型之间的强制转换操作不会更改基础对象的运行时类型;它只更改用于该对象的引用的值得类型

用户自定义C#数据类型转换

    所有的用户自定义转换都是静态的,要使用static关键字。用户自定义转换分为显示和隐式,它们用implicit(隐式转换)或explicit(显式转换)关键字声明。static访问修饰符 转换修辞符operator有一点要注意的是,一个类中不能同时写显示和隐式声明,只能是其中一个,但是如果声明了隐式的转换,那么其对应的显式转换也会自动提供,如果声明了显示转换,其对应的隐式转换不会提供

     

评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值