.Net 数据类型转化
2015-09-06 12:51 whitecf 阅读(340) 评论(0) 编辑 收藏 举报隐式类型转换:
小范围转大范围;
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)