VB语言基础

  • 格式:doc
  • 大小:1.22 MB
  • 文档页数:26

精品文档

精细;挑选; VB语言基础

一、数据类型

1、数值型: 取值范围:

Byte(字节型)━占1字节; 0~255无符号

Integer(整型)━占2字节; -32768~32767

long(长整型)━占4字节; -2147483648~2147483647

single(单精度浮点)━占4字节; 略

Double(双精度浮点)━占4字节; 略

Currency(货币型)━占8字节 小数点左15位,右4位

(精确定点数据类型)

2、逻辑型:

Boolean(布尔型)━占2字节; true或false

3、字符串型:

String¡ª¡ª定长型占字符串长度,变长型再加10

4、日期型:

Date(日期型)━占8字节 100-1-1~9999-12-31

5、对象型:

Object━占4字节; 任何Object引用

6、变体型:

Variant━变体型数字占16字节,变体型字符占22字节+字符串长

注:此类型还包含三种特定值:

Empty;Null;Error;

• 7、用户定义的数据类型:

• 用户可以利用Type语句定义自己的数据类型。格式如下

• Type 数据类型名

• 数据类型元素名 As 类型名 精品文档

精细;挑选; • ……

• End Type

• 用Type可定义类似于C语言中的结构体类型。例如:

• Type Date_Rec

• RYear As Integer

• RMonth As String*3

• RDay As Integer

• End Type

• 注:记录类型中的元素可以是字符串,但必须是定长字符串,其长度由类型名加上一个星号和常数指明。

• 数据类型转换函数:

• 函数名及书写格式 转换结果

• CBool(表达式) 布尔型

• CCur(表达式) 货币型

• CByte(表达式) 字节型

• CDate(表达式) 日期型

• CDbl(表达式) 双精度

• CSng(表达式) 单精度

• CInt(表达式) 整型

• CLng(表达式) 长整型

• CStr(表达式) 字符串

• Cvar(表达式) 变体型

• 二.变量

• 1. 变量名 V中变量的命名遵从标识符命名原则:必须以字母开头;变量中间不能有空格;不能使用VB关键字;

• 2. 变量的声明 VB允许使用不声明的变量,即一个变量未经声明就可以在程序中使用。这种变量使用方式称为隐含变量声明。(使用隐含变量时,VB会自动创建变量,并赋予它变体类型。在为其指定值之前,其值为Empty,当为它赋值精品文档

精细;挑选; 后,会采用所赋值的类型作为自己的类型。)

• 显式声明:

• ①用类型说明符:将类型说明符加在变量名的尾部;

• ②定义变量时指定其类型:

• 格式:Declare 变量名 As 类型名

• 其中的Declare 可以是Dim ,Static, Redim, Public中之一

• ③用Def type语句:Def type 字母范围

• 这里的Type是类型标志,Def是系统保留字,它们之间没有空格。例如:DefInt D-J

• 该定义声明了D、E、F、G、H、I、J都是整型变量,而且以这些字母开头的变量名也都是整型变量。

• 类型说明符:

• % :整型;

• & :长整型;

• !:单精度浮点型;

• # :双精度浮点型;

• @ :货币型;

• $ :字符串型;

• 字节、布尔、日期、对象及变体型没有类型说明符。

• 注意:

• ① Dim a,b,c As Integer是错误的。只有c被声明成Integer,而a,b缺省为Variant类型。

• ② 如果使用Dim x As Integer语句声明了变量x为Integer,而在后面又使用带有类型说明符的该变量,如x$,x!,x@和x#,程序运行时就会产生“duplicate definition”错误。

• ③ 使用不带As的Dim语句,会被声明成变体类型的变量。 精品文档

精细;挑选; • ④ 通过不带长度说明的字符串声明语句可以声明变长字符串。

• ⑤ 对于声明布尔型的变量,其缺省值为False ;

• ⑥ 为声明为Date类型的变量赋值时,日期值应放在一对#之间,且多种日期和时间格式在VB中都是有效的。

• 3. 变量的作用域和生存期:

• 变量的作用域——指变量的有效作用范围,也就是变量可以被访问的范围。按以下三种方式来定义变量的作用范围:

• 范 围 说 明

• 过程 在过程内使用Dim或Static

• 私有 在模块开头加上Dim或Private

• 公共 在模块开头加上Public

• 变量的生存期——指VB保存该变量值的时间,是变量在整个程序运行过程中的有效生存时间

1)过程层变量——过程层变量是指在过程或函数内部定义的变量,这种变量无论是用Dim还是Static声明,其作用域都只是该过程或函数体,在过程或函数外不能引用 ;

2)窗体层变量——窗体层变量是指在窗体的通用部分声明的变量,即不是在任何一个窗体内的过程或函数中声明的变量。它的作用范围至少是窗体的存在范围,也就是说在窗体内的每个过程或函数中都可以使用窗体层变量。

• 窗体层变量的声明有三种方式:

• 用Dim语句声明。

• 用Private语句声明。

• 用Public语句声明。

• 对于用Dim和Private声明的窗体层变量,其作用范围都是在所声明的窗体范围内。用Public声明的窗体层变量作为窗体精品文档

精细;挑选; 公用数据成员,可以在其他窗体或模块中以“窗体名.变量”方式引用。其作用可以大于当前窗体范围。窗体层变量在本窗体所有过程中都是可见的。

• 3) 模块层变量——模块(Module)是构成VB工程(Project)的一部分,是包含数据和过程的集合。定义模块层变量只需在模块的通用部分加入Dim,Private,Global或Public等声明语句即可。用Dim和Private声明的模块层变量作用域为所在模块范围,而用Public和Global定义的模块层变量则可以全局使用。

• 注:全局变量必须用Public或Global声明,不能用Dim

• 三. 常量

• 常量是一个有意义的名字,用来表示程序运行时不变的数值和字符串。

• Visual Basic中的常量分为文字常量和符号常量两种,文字常量又可分为数字常量和字符串常量。

• 符号常量(自定义常量):在程序中程序员用Const声明的常量。

• 使用常量时应注意:

• (1) 用Const声明的常量在程序运行过程中是不能被重新赋值的。

• (2) 在常量声明的同时赋值。

• (3) 可以为声明的常量指定数据类型,如Const conVal As

Currency=3.78,缺省时为所赋值的类型。

• (4) 在用常量为常量初始化时注意,不可有循环引用。例如:

• 模块1中 :

• Public const con1=con2+8 …… 精品文档

精细;挑选; • 模块2中 :

• Public Const con2= con1*3……

• 四. 数组

• 1. 数组的定义:

• 必须用Global或Dim语句定义。Dim语句的语法格式如下:

• Dim 数组名([lower To ] upper,[[lower To ] upper])[As

type]

• 在这里,每对lower和upper为数组的一维,lower是该维下标的下限,upper是该维下标的上限,如不标明lower,其默认值为 0。Upper不可省略。

• 例如:

• (1) 一维数组的定义:

• Dim Record (5) As Integer

• 定义了一个有六个数据元素的整型数组

• (2) 二维数组的定义

• Dim Matrix(2,3) As Integer

• 该数组定义了一个二维数组,可以存储12个整型数,三行四列下标:00,01,02,03,10,……23

• 2. 动态数组

• 带有空()的Dim可以声明一个动态数组,如:

• Dim dynArray( )

• 然后,可用ReDim语句在一个过程或函数中定义动态数组的维数和元素个数。申请或重申请存储空间的一般格式为:

• ReDim [Preserve ]数组名 ([lower TO ] upper [,[lower

To] upper]) [As Type]

精品文档

精细;挑选; • 其中,Preserve为可选项,表示是否保护己有数据。缺省时为不保护。

• 例如: ReDim dynArray(10) //为动态数组申请10个单元

• ReDim Preserve myArray (Ubound(myArray)+10)

• 其中,Ubound函数返回数组的指定维的上限。

• 这是一个保留原数据的增量分配数组

• 五、枚举类型:

• 当一个变量只有几种可能的值时,可将这个变量定义为枚举类型。

• 枚举类型的声明放在窗体模块、标准模块或公用类模块中的声明部分,用Enum语句来定义,格式如下:

• [Public|Private] Enum 类型名称

• 成员名[=常数表达式]

• 成员名[=常数表达式]

• ¡­¡­

• End Enum

• 默认情况下,枚举类型中的第一个常数被初始化为0,其后的常数逐项递增1。

• 例如: Enum Days

• Saturday

• Sunday

• Monday

• Tuesday

• Wednesday