数据类型(Visual Basic)简述总结
( 1 ) 定义与概述:
变量是用来存储值的所在处;它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。
根据缺省规定,如果在声明中没有说明数据类型,则令变量的数据类型为 Variant。Variant 数据类型很象一条变色龙— 它可在不同场合代表不同数据类型。当指定变量为 Variant 变量时,不必在数据类型之间进行转换,Visual Basic 会自动完成各种必要的转换。
( 2 ) 声明带数据类型的变量
在使用非 Variant 变量之前,必须使用 Private、Public、Dim 或 Static 语句将变量声明为 As type。例如,下列语句分别声明了 Integer、Double、String 和 Currency 类型的变量:
Private I As Integer
Dim Amt As Double
Static YourName As String
Public BillsPaid As Currency
一个声明语句可将多个声明组合起来,请看下列语句:
Private I As Integer,Amt As Double
Private YourName As String,BillsPaid As Currency
Private Test,Amount,J As Integer
注意 如果不提供数据类型,则指定变量为缺省类型。在上例中,变量 Test 和 Amount 是 Variant 数据类型。如果由于其它编程语言的经验使人感到同一个声明语句中的所有变量都有相同的指定数据类型(此例中为 Integer),那么,此处的结果可能会令人感到新鲜。
( 3 ) Numeric 数据类型
Visual Basic 支持几种 Numeric 数据类型— Integer(整型)、Long(长整型)、Single(单精度浮点型)、Double(双精度浮点型)和 Currency(货币型)。与 Variant 类型相比,Numeric 类型占用的存储空间通常要少。
如果知道变量总是存放整数(如 12 )而不是带小数点的数字(如 3.57),就应当将它声明为 Integer 类型或 Long 类型。整数的运算速度较快,而且比其它数据类型占据的内存要少。在 For...Next 循环内作为计数器变量使用时,整数类型尤为有用。
详细信息 关于控制结构的详细资料,请参阅本章后面的“控制结构概述”。
如果变量包含小数,则可将它们声明为 Single、Double 或 Currency 变量。 ( * )Currency 数据类型支持小数点右面 4 位和小数点左面 15 位;它是一个精确的定点数据类型,适用于货币计算。浮点(Single 和 Double)数比 Currency 的有效范围大得多,但有可能产生小的进位误差。
注意 浮点数值可表示为 mmmEeee 或 mmmDeee ,其中 mmm 是假数,而 eee 是指数(以 10 为底的幂)。Single 数据类型的最大正数值为 3.402823E+38,或 3.4 乘以 10 的 38 次方;Double 数据类型的最大正数值是 1.79769313486232D+308 或 1.8 乘以 10 的 308 次方。
( 4 ) Byte 数据类型
如果变量包含二进制数,则将它声明为 Byte 数据类型的数组。(本章后面的“数组”中将讨论数组)。在转换格式期间用 Byte 变量存储二进制数据就可保留数据。当 String 变量在 ANSI 和 Unicode 格式间进行转换时,变量中的任何二进制数据都会遭到破坏。在下列任何一种情况下,Visual Basic 都会自动在 ANSI 和 Unicode 之间进行转换:
读文件时
写文件时
调用 DLL 时
调用对象的方法和属性时
详细信息 关于 Unicode 和 ANSI 转换的详细信息,请参阅“国际化”。
( 5 ) String 数据类型
如果变量总是包含字符串而从不包含数值,就可将其声明为 String 类型。
Private S As String
然后可将字符串赋予这个变量,并用字符串函数对它进行操作。
S = "Database"
S = Left (S,4)
按照缺省规定,String 变量或参数是一个可变长度的字符串,随着对字符串赋予新数据,它的长度可增可减。 也可以声明字符串具有固定长度。
可用以下语法声明一个定长字符串:
String * size
例如,为了声明一个长度为 50 字符的字符串,可用下列语句:
Dim EmpName As String * 50
如果赋予字符串的字符少于 50 个,则用空格将 EmpName 的不足部分填满。如果赋予字符串的长度太长,已不能成为定长字符串,则 Visual Basic 会直接截去超出部分的字符。
因为定长字符串用空格填充尾部多余的空间,所以在处理定长字符串时可发现,删除空格的 Trim 和 RTrim 函数是很有用的。
可将标准模块中的定长字符串声明为 Public 或 Private。在窗体和类模块中,必须将定长字符串声明为 Private。
详细信息 请参阅语言参考中的“Ltrim、RTrim Function 和 Trim 函数”。
交换字符串和数字
如果字符串表示数值,则可将字符串赋予数值变量。也可将数值赋予字符串变量。例如,将命令按钮、文本框和列表框放置在窗体中。在命令按钮的 Click 事件中输入下列代码。运行应用程序并单击命令按钮。
Private Sub Command1_Click ()
Dim intX As Integer
Dim strY As String
strY = "100.23"
intX = strY '将字符串传递给数值变量。
List1.AddItem Cos (strY) '将字符串中数值的余弦值。
'添加到列表框中。
strY = Cos (strY) '将余弦值传递给字符串变量。
Text1.Text = strY '在文本框中显示字符串。
End Sub
Visual Basic 会自动强制变量为适当的数据类型。在转换字符串和数值时要小心;如果传送字符串中的值不是数值,则在运行时会出错。
( 6 ) Boolean 数据类型
若变量的值只是“true/false”、“yes/no”、“on/off”信息,则可将它声明为 Boolean 类型。Boolean 的缺省值为 False。在下面的例子中,blnRunning 是 Boolean 变量,存储简单的 yes/no 设置。
Dim blnRunning As Boolean
'查看磁带是否在转。
If Recorder.Direction = 1 Then
blnRunning = True
End if
( 7 ) Date 数据类型
Date 和 Time 值既可包含在特定的 Date 数据类型中,又可包含在 Variant 变量中。一般的 Date 特性适用于这两种类型。
详细信息 请参阅《联机手册》的“高级变量主题”中的“在 Variant 变量中存储 Date/Time 值”部分。
( 8 ) Object 数据类型
Object 变量作为 32 位(4 个字节)地址来存储,该地址可引用应用程序中或某些其它应用程序中的对象。可以随后(用 Set 语句)指定一个被声明为 Object 的变量去引用应用程序所识别的任何实际对象。
Dim objDb As Object
Set objDb = OpenDatabase ("c:/Vb5/Biblio.mdb")
( 9 )转换数据类型
Visual Basic 提供了几种转换函数,可用来将值转换成特定数据类型。例如,用 CCur 函数将值转换成 Currency 类型:
PayPerWeek = CCur (hours * hourlyPay)
转换函数 将表达式转换成
Cbool Boolean
Cbyte Byte
Ccur Currency
Cdate Date
CDbl Double
Cint Integer
CLng Long
CSng Single
CStr String
Cvar Variant
CVErr Error
( 10 ) Variant 数据类型
Variant 变量能够存储所有系统定义类型的数据。如果把它们赋予 Variant 变量,则不必在这些数据的类型间进行转换; Visual Basic 会自动完成任何必要的转换。例如:
( 11 ) Null 值
Variant 数据类型还可包含一特定值:Null。
( 12 ) Error 值
在 Variant 中,Error 是特定值,指出已发生的过程中的错误状态。