黑马程序员技术交流社区

标题: 什么是隐式转换和显式转换? [打印本页]

作者: Quasimodo2    时间: 2016-10-22 23:40
标题: 什么是隐式转换和显式转换?
类型转换分为隐式转换和显式转换,他们的转换方式都对应了变换、投射、和装箱/拆箱三种类型。 当直接将一种类型赋值给另外一个类型,就是隐式转换。系统会在编译时候进行判断,能否进行隐式转换,如果提示出错,就说明无法隐式转换,如果没有提示,这个隐式转换是成立的,并且不会出现错误;接下来就是利用上面三种方式进行转换了。 当采取显式转换时,利用诸如(int)a,convert和parse方法吧。这时候有四种情况,一种是编译就出错,因为根本无法强制转换,另一种是可以编译通过,但是运行时候出错,还一种,就是运行也成功了,但是由于截断等原因,结果是不正确的了,最后一种当然就是转换成功喽。其中对于(int)a,编译时候会确保是存在显示转换关系的,如果不存在,就会提示无法转换。如果可以转换,那不会出错,但是结果不一定对,因为可能截断了部分内容;对于Int32.Parse()表示将数字的字符串转换为32 位有符号整数,属于内容转换。只要是字符串,都可以转换过去,至于是否正确,运行过程中会提示是否出错,包括空字符串错,格式不对,或者是溢出。

作者: Jay0913    时间: 2016-10-22 23:44
赞一个,这两种转换用的多吗?
作者: gyy    时间: 2016-10-23 00:06
总结的不错,哈哈
作者: 煤男纸    时间: 2016-10-23 00:12
总结得很全面

作者: star皆空    时间: 2016-10-23 00:44
可以可以





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2