Visual Basic .NET提供了一些数据类型的自动转换,但最好不要依赖这些,因为可能会忘记这些转换。显式转换可以确切地表明代码的功能,在您(或其他人)以后查看该代码时可以作为一个有效的说明。类型之间的转换并没有一个简单的语法,但各种方法中存在许多共同之处。
转换为字符串值是最简单的,因为每个数据类型都有一个ToString方法。例如,将年龄转换成一个TextBox可以使用:
AgeTextbox.Text=Age.ToString()
对于Boolean类型,转换方法也相同,但字符串值为True或False.
将字符串值转换为另一种类型稍许复杂,因为没有任何String类型的方法能够自动实现。相反,必须使用一个单独的类来实现这种转换。
1.使用架构类转换数据类型
如果使用架构类(framework class),则存在两种方法可以将字符串值转换为其他类型,以防您在代码中看到这两种方法,这里有必要介绍一下。第一种方法是使用大多数数据类型都支持的Parse方法。例如,为了将Text,Box控件中存储的数字转换为一个Integer数据类型,可以执行:
Dim Age As Integer
Age=Integer.Parse(AgeTextBox.Text)
这里的Parse方法分析了传递给它的值,也就是说,它读取该值、检查它是否为整数值、然后将它转换为整数。要转换的值来自AgeTextBox控件的Text属性,该值是一个字符串。因此,该字符串被传递给Parse方法,将它转换为一个整数,然后返回该整数将它赋值给Age变量。
除了Object外其他所有数据类型都支持Pare方法,即使您对相同的语法使用不同的数据类型。例如:
Dim ANumber As Double
ANumber=Double.Parse(NumberTextBox.Text)
实现数据转换的第二种方法是使用Convert类,它可以在类型之间进行转换。该类非常灵活,它能在所有的类型之间转换,但需要有CLR类型的知识。例如,前面使用整数的示例可以改写为:
Dim Age As Integer
Age=Convert.ToInt32(AgeTextBox.Text)
对于双精度类型,该语句为:
Dim ANumber As Double
ANumber=Convert.ToDouble(NumberTextBox.Text)
在实际转换类型时,Convert类和数据类型的类之间并没有什么不同。使用Convert类的惟一原因是它能够简化代码,从而转换为另“一种语言。在编写Wrox United的Web站点时这一点非常重要,但如果您打算坚持一种语言,这一点或许也并不重要。