用户自定义数据类型是根据用户需要在已存在的基本数据类型基础上组合而形成的新的数据类型。自定义型数据又称之为记录类型数据,它是一种组合数据类型,即和数组一样由多个数据组成,但和常规数组不同的是自定义型数据中的元素类型可以不一致。
如自定义型数据可以用来处理这样的表格:
用户可以利用Type语句定义自己的数据类型,其格式如下:
元素名为自定义数据类型中的一个成员,类型名为上述基本类型名或自定义数据类型名。定义语句应该放在标准模块或窗体模块的声明部分,在窗体的声明中定义Type语句应该指定Private,在模块中的声明部分定义Type语句默认Public。
如上面数据表结构可如下定义:
注意:定义了一个自定义数据类型只是给计算机指定了一种数据类型的内存分配方案,并没有真正定义变量,要想使用自定义类型变量,必须用类型名Student来定义变量或数组。
例:Dim First As Student
定义了一个Student自定义型变量First,在内存中占用4+2+8+4*2=22字节
在使用Type语句时,应注意以下几点:
(1)元素名为自定义数据类型中的一个成员,类型名为上述基本类型名或自定义数据类型名,记录类型中的元素可以是变长字符串,也可以是定长字符串;
(2)记录类型的定义必须放在模块(包括标准模块和窗体模块)的声明部分,在使用记录类型之前,必须用Type语句加以定义。在一般情况下,记录类型在标准模块中定义,其变量可出现在工程的任何地方、当在标准模块中定义时,关键字Type前可以有Public(默认)或Private;而如果在窗体模块中定义,则必须在前面加上关键字Private;
(3)在记录类型中不能使用动态数据;
(4)在随即文件操作当中,记录类型数据具有重要作用。
例如,一个学生的信息可以定义为用户自定义的数据类型。根据需要,可以定义一个包括学生的学号(字符型数据)、姓名(字符型数据)、出生日期(日期型数据)等新的自定义数据类型以方便使用。
自定义类型由于内部组成千变万化,所以只能由用户自己来定义这种数据的内部结构。
一、记录类型
记录类型的引用
由于一个自定义类型变量中有多个元素,所以和数组名一样,不能直接引用变量名,只能引用其中的元素。
1.引用方法
引用方法为:变量名.元素名。
例如:Frist.name引用自定义型变量First的第一个元素字符串name。
上例表格处理:
2.With语句
当连续的若干条语句都在引用同一个记录类型变量时,使用With结构,可以省略变量名。
With语句格式为:
上例表格还可这样处理:(www.daowen.com)
另外,也可利用With语句在连续给某个对象属性赋值时,省略对象名。
例如:用With语句改变图像框的属性。
3.记录类型的嵌套
记录类型允许嵌套,即某个记录类型中的元素的类型允许为其他的记录类型。我们首先定义一个日期记录类型。
然后,我们可以再定义一个student记录类型。
此时,birthday这个元素的类型就变成了Dat型,而它本身就是一个记录类型。
4.嵌套记录变量的引用
如果要引用嵌套的记录变量,可通过以下语句实现。如在某过程中,我们首先定义了一个Student类型的变量first。
或者:
二、枚举类型
所谓“枚举”是指将变量个值一一列举出来,变量的值在列举出来的范围内。
枚举类型放在窗体模块、标准模块或公用模块的声明部分,通过Enum语句来定义。格式如下:
[Public|Private]Enum类型名称
成员名[=常数表达式]
成员名[=常数表达式]
……
End Enum
说明:
(1)Public:表示所定义的Enum类型在整个工程中都是可见的,在默认情况下,Enum类型被定义为Public。Private表示所定义的Enum类型只在所声明的模块中是可见的。
(2)在Enum语句的格式中,“常数表达式”可以省略,在默认情况下,枚举中的第一个常量被初始化为0,其后的常量则初始化为比其前面的常大1的值。
(3)VB将枚举类型的常数值看作长整数。如果将一个浮点数值赋给一个枚举中的常数,VB会将该数值取整为最接近的长整数。
(4)当对一个枚举中的常赋值时,可以使用另一个数值枚举中的常数值。
【例4.1】利用枚举类型输出是否是工作日
用“文件”菜单中的“新建工程”命令建立一个工程,然后执行“工程”菜单中的“添加模块”命令,在模块窗口中输入下面的枚举类型定义。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。