数组在VB中的多态研究
摘要:数组是各应用程序开发环境必备内容,数组的引入给软件开发提供了极大的方便,着重介绍了VB数组多态的特性及应用。
关键词:数组;静态数组;动态数组;控件数组;自定义类型数组
0引言
几乎所有的应用程序开发语言都引入了数组概念,数组允许通过同一变量名和不同的下标访问一系列变量。VB同样不例外,也提供了数组,它是用于存放一批性质相同的数据集合。其特点是:由若干个数组元素组成,数组元素的数据类型一致;各数组元素是有序存放的,下标代表它在数组中的位置;数组中各元素之间有内在联系,在内存中占连续的一段存储单元。根据其形态不同可分为静态数组、动态数组、控件数组和自定义类型数组。根据不同的情况,我们用不同
的数组形态来解决实际问题。
1静态数组
静态数组是指定义时就已经确定数组元素个数的数组。根据静态数组的作用范围,有全局数组、模块数组、局部数组3种,具体情况如表1所示。
2动态数组
2.1建立动态数组的常用方式
(1) 用Global、Public、Dim、Private或Static声明数组,在定义数组时不要给出具体的维数,这样声明的数组为动态数组。例如:
Dim qq( ) As Integer。
(2)需要确定该数组的实际大小时,在过程中用ReDim进行定义。与Dim语句、Static语句不同,ReDim语句是一个执行语句,只能出
现在过程中。
2.2动态数组的一般特性
在过程中创建动态数组时,可以用Static或Dim语句进行首次
声明,但这样建立的数组的最大维数为8。如果
表1三种不同作用范围的静态数组具体情况对照表示
array在vb什么意思啊类别[]全局数组[]模块数组[]局部数组
作用范围[]可以被程序中的任何一个模块和窗体访问[]只在当前模块中有效[]只限制在该过程内
声明位置[]在模块文件(.bas)中或者通用声明段声明[]在代码模块或窗体模块声明[]在过程内声明
声明关键字[]Global或Public[]Dim或Private[]Static或Dim
定义格式[]Global|Public数组名([下界,to]上界[,[下界To]上界] …)[As类型]public array1(1 to 3,0 to 5) as integer[]Dim|Private数组名([下界,to]上界[,[下界To]上界] …)[As
类型]Dim qq(3,4) as string[]Dim|Static数组名([下界,to]上界[,[下界To]上界] …)[As类型]Static avg(3) as integer
注意事项[]语句只能用在全局模块中, 数组支持的最大维数是60[]作用范围只在当前模块中有效[]其使用范围只限制在该过程内数组必须是先声明后使用。静态数组的上、下界必须是常数表达式而不能是变量。VB默认数组的下标从0开始,若想改变数组的缺省下界,可在声明部分之前增加一条Option语句。如:option base 1
需要更多的维数,则不用Dim进行首次声明,而直接用ReDim 声明即可。每次执行ReDim语句重新定义数组时,以前存在动态数组中的数据会全部丢失,相当于对其又进行了一次初始化。如果希望只改变数组的大小而不丢失原有的数据,可在ReDim语句中使用
Preserve关键字,例如:
ReDim Array1(3,4)As integer
如将数组增加4个元素,又要保留原来内容,可用语句:
ReDim Preserve Array1(3,4+1) As integer
使用Preserve时,只有数组的最后一维的上界可以改变,也就是说,使用Preserve只能改变最后一维的大小,前面几维大小不能改变。下面改变数组大小的语句不对:
ReDim Preserve array1(3+1,4) As integer
ReDim Preserve array1(3,-1 To 4) As integer
3控件数组
3.1控件数组的建立
3.1.1在设计状态时建立
步骤:在窗体上画出某控件,并进行属性设置。然后选中该控件进行“复制”和“粘贴”操作,系统提示“是否建立控件数组”,
选择是即可。多次粘贴就可以创建多个控件元素。
3.1.2在运行状态时添加控件数组
步骤:首先在窗体上画出所需控件,设置该控件的index属性值为0,表示该控件为数组。然后通过load方法添加其余若干个元素,也可以通过Unload删除某个添加的元素。其中每个添加的控件数组通过Left和Top属性,确定其在窗体上的位置,并设置Visible属性
值为True。
3.2控件数组的一般特性
控件数组是由一组相同类型的控件组成的,它们有相同的控件名。控件数组适用于若干个控件执行的操作相似的场合,控件数组共享同样的事件过程。控件数组通过index值来标识各控件,第一个下
标是0。如:cmd1(0)、cmd1(1)、cmd1(2)、cmd1(3)……
4自定义类型数组
前面我们提到,存放一批类型相同的数据集合要用数组,并且通过声明上下界的值决定数组的大小,通过下标引用数组中各元素。现在要存放一组相关而类型不同的数据集合,显然不能用数组,所以就引入自定义类型。在定义自定义类型时必须逐一声明自定义类型中的每一个元素,各元素类型可以不同,通过指定元素名来引用自定义
类型中某元素。如果我把一个数组定义为自定义类型,那么就形成了自定义类型数组,它常用于存放一组相关的信息集合,简而言之,自定义类型数组就是数组中的每个元素都是自定义类型。如:存放若干
个学生的基本情况等。
4.1定义自定义结构类型
形式:
Type 自定义类型名
元素名1 as 数据类型名
元素名n as 数据类型名
End type
如:在标准模块定义自定义类型,来表示学生基本情况。
Type studtype
Name as string*5
Sex as string*1
Telephone as long
School as string*10
End type
4.2声明自定义类型数组
形式:
Dim 自定义类型数组名as 自定义类型名
如:自定义一个能存放100个学生基本情况的自定义类型数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。