显式类型转换,又叫强制类型转换。与隐式转换正好相反,显式转换需要用户明确地指定转换的类型。
在vb.net机房收费系统中遇到数据转换问题,如下需要将查询到的dataTable数据中的"cash"字段值转换成single类型,这里用到的CType函数解决了这个问题。
enLineLog.cash = CType(Val(dt.Rows(0)("cash").ToString()),Single)
CType函数
CType 函数作用于两个参数。第一个参数是将要转换的表达式,第二个参数是目标数据类型或对象类。需要注意,第一个参数必须是表达式,不能是类型。
vb.net中的数据类型转换不经提供了CType一种方式,再看MSDN中的所有类型转换,vB.NET通过这些关键字强制把括号中的表达式转换为目标类型。
类型转换关键字 | 将表达式转换为数据类型 | 允许的要进行转换的表达式数据类型 |
CBool | Boolean 数据类型 (Visual Basic) | 任何数值类型(包括 Byte、SByte 和枚举类型)、String、Object |
CByte | Byte 数据类型 (Visual Basic) | 任何数值类型(包括 SByte 和枚举类型)、Boolean、String、Object |
CChar | Char 数据类型 (Visual Basic) | String, Object |
CDate | Date 数据类型 (Visual Basic) | String, Object |
CDbl | Double 数据类型 (Visual Basic) | 任何数值类型(包括 Byte、SByte 和枚举类型)、Boolean、String、Object |
CDec | Decimal 数据类型 (Visual Basic) | 任何数值类型(包括 Byte、SByte 和枚举类型)、Boolean、String、Object |
CInt | Integer 数据类型 (Visual Basic) | 任何数值类型(包括 Byte、SByte 和枚举类型)、Boolean、String、Object |
CLng | Long 数据类型 (Visual Basic) | 任何数值类型(包括 Byte、SByte 和枚举类型)、Boolean、String、Object |
CObj | Object 数据类型 | 任何类型 |
CSByte | SByte 数据类型 (Visual Basic) | 任何数值类型(包括 Byte 和枚举类型)、Boolean、String、Object |
CShort | Short 数据类型 (Visual Basic) | 任何数值类型(包括 Byte、SByte 和枚举类型)、Boolean、String、Object |
CSng | Single 数据类型 (Visual Basic) | 任何数值类型(包括 Byte、SByte 和枚举类型)、Boolean、String、Object |
CStr | String 数据类型 (Visual Basic) | 任何数值类型(包括 Byte, SByte 和枚举类型)、Boolean、Char、Char 数组、Date、Object |
CType | 逗号 (,) 后面指定的类型 | 当转换为“基本数据类型”(包括基本类型数组)时,相应转换关键字所允许的相同类型 当转换为“复合数据类型”时,其实现的接口和继承的类 当转换为一个已经在其上重载 CType 的类或结构时,该类或结构 |
CUInt | UInteger 数据类型 | 任何数值类型(包括 Byte、SByte 和枚举类型)、Boolean、String、Object |
CULng | ULong 数据类型 (Visual Basic) | 任何数值类型(包括 Byte、SByte 和枚举类型)、Boolean、String、Object |
CUShort | UShort 数据类型 (Visual Basic) | 任何数值类型(包括 Byte、SByte 和枚举类型)、Boolean、String、Object |