第四章
/ I/ O7 e2 B$ B D2 h6 n* {' A$ h 一、数据类型
|# O4 Z- z+ U1 o: x9 P h n (一)基本数据类型& i5 W8 j* g7 ^& L) T
数据类型Visual Basic6.0提供的基本数据类型主要有字符串型和数值型,此外还提供了字节、货币、对象、日期、布尔和变体数据类型。+ E6 N1 E3 l1 c; { N
(二)用户定义的数据类型* ^2 H$ W- z' I5 t" H4 f
用户可以利用Type语句定义自己的数据类型,其格式如下:Type 数据类型名
9 L+ t0 A* ~( l 数据类型元素名 As 类型名 数据类型元素名 As 类型名 ……
7 {, w) H" ]: C- \" D End Type* ~$ j+ s/ ^1 Q0 ^- ~
(三)枚举类型
% J* |" k) M7 ?2 n o 所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。
3 ?# d, \! x. ~6 M 枚举类型放在窗体模块、标准模块或公用类模块中的声明部分,通过Enum语句来定义,格式如下:
, p! s6 W) Y* e# _; o [Public|Private]Enum类型名称 成员名[=常数表达式] 成员名[=常数表达式] ……1 ^ i) [+ C% z1 @
End Enum
8 V+ H, I1 S9 L6 v# { U/ h" I 二、常量和变量4 B" }4 f3 _2 C4 B- F6 N6 Y# ?$ S
(一)常量% h* F) t6 Y0 o: Q- u, {( Z6 G$ E
Visual Basic中的常量分为两种,一种是文字常量,一种是符号常量。
0 X q' R' P" f2 h; A7 h (二)变量
# m0 j+ u9 g; A 1.命名规则
& G% x5 q# X( P& h, c2 P2 L n1 X* R 变量是一个名字,给变量命名时应遵循以下规则:
7 |1 r( \' [& x% b1 m (1)名字只能由字母、数字和下划线组成;; S1 y5 Y, y0 A* A
(2)名字的第一个字符必须是英文字母,最后一个字符可以是类型说明符;" T; S2 E% o# u! q; ]
(3)名字的有效字符为255个;& S u' @1 ~' W: Z9 z
(4)不能用Visual Basic的保留字作变量名,但可以把保留字嵌入变量名中;同时,变量名也不能是末尾带有类型说明符的保留字。
$ ]' E' H P5 P& i5 T( p F- u 2.变量的类型和定义
9 \$ ~6 Q! U) }' f8 W' J) H 任何变量都属于一定的数据类型,包括基本数据类型和用户定义的数据类型。在Visual Basic中,可以用下面几种方式来规定一个变量的类型:
/ y2 m. O; {8 P1 D* d( o (1)用类型说明符来标识。
$ }5 w2 D! W, O4 U8 _2 e6 h (2)在定义变量时指定其类型6 s% ^0 K `" @( w+ z" ?
(3)用DefType语句定义! R, @/ F: l# _" G/ S7 O6 `( B6 \
(4)用类型说明符定义的变量,在使用时可以省略类型说明符。 t k- C+ Y, D1 G L3 p2 k* O
(三)变体类型变量' i* \7 N2 a8 b$ ^! i
1.Variant变量的定义+ h1 a+ q/ m, I0 U8 O. _
Variant变量可以用普通数据类型变量的格式定义,也可以默认定义。
9 t2 F7 ~( @" i8 V1 {5 Q3 P8 f 2.Variant变量值的内部表示: o. u8 Z [! Q
Variant变量所存放的值都有一个内部表示,在执行比较等操作时,Variant变量根据其内部表示确定如何操作。向Variant变量赋值时,Visual Basic以最紧凑(需最小存储空间)的表示方式存储该值,并可根据需要改变表示方式。
: O* K- w* W I* X: m 3.Variant变量中的数值- [3 X! ^+ g: ?4 u" O) @
在Variant变量中存放数值时,Visual Basic以尽量紧凑的方式存储。3 y* `) X% a0 t; s
4.Variant变量中的字符串
+ y+ |* C9 R. o 在对存放字符串的Variant变量进行操作时可能会产生歧义。当用“+”运算符对两个Variant变量进行运算时,如果两个变量都是数值,则执行数值相加运算;如果两个变量中存放的都是字符串,则执行字符串连接操作。如果一个变量中是数值而另一个变量中是字符串,则情况就复杂了。Visual Basic先试着将字符串转换为数值,如果转换成功则进行相加运算,不成功则把另一个数值转换成字符串,然后对两个字符串进行连接,形成一个新的字符串。
! E* I" J3 M8 C 5.Variant变量中的空值(Empty)
4 c( U g6 q: }( O0 H Variant变量在被赋值前为空值(内部表示为Empty或0),它不同于数值0,不同于空字符串(″″),也不同于Null(见下)。通过IsEmpty函数可以测试一个变量自建立以来是否被赋过值。
! P, ^/ k' _2 [; @$ ~7 x9 w! h 6.Variant变量中的Null值1 O0 n S9 n( |
Variant变量可以取一个特殊值---Null,该值通常在数据库应用程序中用来指出未完成或漏掉的数据。Null值具有以下一些特性;
- G3 A, M6 v+ T4 y% v! |" _* N (1)“蔓延性”。如果表达式中任一部分为Null,则整个表达式的值即为Null。
- b0 o* d! E4 E$ c- B* z (2)如果向函数传送Null、值为Null的Variant变量或结果为Null的表达式,则会使大多数函数返回Null值。2 {+ T1 g) C( U& c. P( v
(3)Null值会在返回Variant变量的内部函数中蔓延。
- ~4 o! `" ~0 J) b1 ^5 ~3 a 三、变量的作用域4 x: X M& y3 V& l
(一)局部变量与全局变量
6 p/ y5 \" j# [! p5 \9 q 根据变量的定义位置和所使用的变量定义语句的不同,Visual Basic中的变量可以分为3类,即局部(Local)变量、模块(Module)变量及全局(Public)变量,其中模块变量包括窗体模块变量和标准模块变量。
# R+ \# O+ I5 K9 i$ J) P8 i (二)默认声明* c& L( K' ^/ s0 e4 P% D
默认定义的变量不需要使用Dim语句,因此比较方便,并能节省代码,但有可能带来麻烦,使程序出现无法预料的结果,而且较难查出错误。% t' Q+ z7 u! ?( M
四、常用内部函数
# H$ k, @4 [( ^" | (一)转换函数% F- ]: A! h& d3 ~) U; Q( S9 y- }, P" i
1.取整函数Int和Fix
' X' _9 w! F U 2.数制转换函数
. A4 j/ }% U, N 3.类型转换函数
7 G. M# }, U1 e3 \6 A 4.格式输出函数% i2 k7 J' u( v4 p5 O5 |
(二)数学函数8 b0 o) d) U/ ?2 o; Z! `
1.三角函数* k4 v5 l0 k8 r" }+ ^' j
2.绝对值函数(Abs)7 }' G- |; `9 a9 n: c7 g1 b
3.符号函数(Sgn)+ f5 T r" G3 c, S }- Z1 o: K
4.平方根函数(Sqr)& C* r7 L4 v; r" k# s! ^9 v' w: E
5.指数和对数函数(Exp、Log) |