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