每个值都有与之关联的类型,此类型定义分配给该值的空间大小,许多值可以表示为多种类型。例如,值 4 可以表示为整数或浮点值。在编程时,可能只需要整数,那么就得把小数转换为整数,有时可能还需要把类似"4"这样的字符串转换为一个数值,这就需要数据类型转换。
一、隐式转换和显示转换
隐式转换就是程序运行期间自行转换类型,不需要人为干预;而显示转换要求编译前指定由哪种类型转换成哪种类型,在代码书写中很容易识别。
下面的代码采用隐式转换:
'隐式转换成功
Dim int1 As Integer = Integer.MaxValue.ToString
Dim lng1 As Long = int1
'隐式转换失败,抛出错误
Dim lng2 As Long = Long.MaxValue
Dim int2 As Integer = lng2
Dim int1 As Integer = Integer.MaxValue.ToString需要把字符串转换成数值,Dim lng1 As Long = int1需要把 Integer类型转换成Long,都能隐式转换成功,而Dim int2 As Integer = lng2因为lng2的值超出了Integer数据类型的最大值,所以引发错误,转换失败。测试结果如图:
再看下面代码:
Sub Main()
Dim str As String
Dim int As Integer
Console.WriteLine("请输入数字:")
str = Console.ReadLine()
int = str
Console.WriteLine("您输入的数字是:" & int)
End Sub
当输入为数字时,程序正常运行,数据类型转换成功。如图:
但也许有人就是不按提示输入,偏偏输入了非数字的字符串,比如输入字母“A”,则会抛出错误,如图:
这种错误的发生是断断续续的,很难检查。
二、编程好习惯
编程前,先在“项目设计器”的“编译”页面进行如图所示的设置:
或者在代码最顶端增加以下代码:
Option Strict On
Option Infer Off
Option Explicit On
Module Module1
End Mod