代码改变世界

.Net 数据类型转化

2015-09-06 12:51  whitecf  阅读(340)  评论(0编辑  收藏  举报

隐式类型转换:

     小范围转大范围;

     char转其他类型可以,反之不可。

显示类型转换: 

   简单类型

  1. char a = (char)1;                           简单类型的转换,编译时报错。   (4.6时传为4,直接去小数)
  2. int b = Convert.ToInt32(123.4);     简单类型的转换,执行时报错。   (4.6时传为5,四舍五入,小数为5时,返回偶数)
  3. 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)