隐式类型转换:
小范围转大范围;
char转其他类型可以,反之不可。
显示类型转换:
简单类型
- char a = (char)1; 简单类型的转换,编译时报错。 (4.6时传为4,直接去小数)
- int b = Convert.ToInt32(123.4); 简单类型的转换,执行时报错。 (4.6时传为5,四舍五入,小数为5时,返回偶数)
- int c = Int32.parse("123"); 只string转数字,执行时报错。 ("4.6"时传失败,格式错误)
2和3区别:Convert.ToInt32(Null)的结果为0,Int32.parse(Null)报ArgumentNullException异常。
引用类型
关键字 |
数据类型 |
参数关系 |
运行时失败 |
CType |
任何数据类型 |
必须在两种数据类型之间定义扩大转换或收缩转换 |
引发 InvalidCastException |
DirectCast |
任何数据类型 |
一个类型必须继承自或者实现另一个类型 |
引发 InvalidCastException |
TryCast |
仅引用类型 |
一个类型必须继承自或者实现另一个类型 |
返回 Nothing |
Dim p as product
p = CType(obj, Product)
p = DirectCast(obj, Product)
例:c = DirectCast(f, System.Windows.Forms.Control) 效率最好
p =TryCast(obj, Product)
时间: 2024-10-06 00:25:52