资源描述:
《枚举与用户定义类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十章枚举与用户定义类型---thetypeofenumerateandself-define前面我们讲述了VisualBasic的基本数据类型,包括整型数、单精度数、浮点数等。但是在程序设计中有些数据无法直接用基本数据类型来表示比如:一个学生的档案既有姓名、性别等字符串型的量,又有成绩等的单精度型的量,这时可以将不同的基本类型数据组合成一个有机的整体,便于一起引用。用户定义类型可以满足这种要求。同时,一个变量的取值有时需要限定在某一个指定的范围内,这可以通过枚举类型实现。10.1枚举类型---enumeratetype当一个变量有几种可能的取值时,可以将它定义为枚举类型。定义
2、:是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内.一、定义枚举类型:枚举类型放在窗体模块、标准模块或共用模块中的声明部分,通过enum语句来定义。1.格式:[public
3、private]enumnamemembername[=constantexpression]membername[=constantexpression]…..Endenum说明:public:表示该枚举类型在整个工程中都是可见的(缺省的)private:表示枚举类型只在所生命的模块中是可见的。Name:枚举类型的名称。必须是一个合法的VB标识符,在定义该枚举类型的变量或参数时用该名称来指定类
4、型.Membername:指定该枚举类型的组成元素名称.Constantexpression:枚举类型的组成元素的值.如果没有指定具体值,则所有赋的值或者是0或者比其直接前驱的值大1.元素的值也可以是别的enum类型.VB中将枚举中的元素的值按长整数处理.如果将一个浮点数值赋给一个枚举中的元素,VB会将该值取整为最接近的长整数.10.1枚举类型---enumeratetype二.枚举变量声明与赋值:定义枚举类型后,可以声明该枚举类型的变量,然后使用该变量存储枚举元素的数值.枚举变量:指用枚举类型定义的变量.变量和参数都可以定义为枚举类型.过程的返回值也可以是枚举类型.格式:di
5、m枚举变量名as枚举类型名注意:尽管通常只将枚举元素数值赋给枚举类型的变量,但也可以将任何长整数数值赋给该变量.当对与枚举常数不相关的变量赋值时,Vb不会产生错误.枚举语句只能在模块级别中出现,不能用模块名来限定枚举类型.10.1枚举类型---enumeratetype使用举例:例如:p199利用枚举类型输出是否工作日.使用workdays类型的变量存储与workdays枚举中的元素相关联的整数数值.10.1枚举类型---enumeratetype10.2用户定义类型---self-definetype在Vb中可以用系统提供的标准类型定义变量,它们都是计算机处理的基本数据项.但
6、在实际工作中,常见的并不是孤立的数据项,而是由两个或两个以上的基本项组成的组合项.用这些组合项来描述相应对象的若干属性,这些描述相同对象的组合项的集合形成了记录.记录定义:通常由描述某实体对象各属性数据的若干字段(数据项)构成.记录与数组最大的不同就是数组中的每一元素必须具有相同的数据类型,而记录中的每一个数据项目却可以具有不同的数据类型.一.创建用户定义类型:使用type语句可以创建用户定义的类型,该语句必须置于模块的声明部分.格式:[private
7、public]typevarnameelementname[([subscripts])]astype[elementname
8、[([subscripts])]astype]……endtype说明:public
9、private:typename:elementname:type:subscripts:数组元素的维数.当定义大小可变的数组时,只须圆括号.subscripts参数使用如下语法:格式:[lowerto]upper[,[lowerto]upper]…….说明:如果不显示指定lower,则数组的下界由optionbase语句控制.如果没有optionbase语句则下界为0.10.2用户定义类型---self-definetypeType语句只能在模块级使用。在标准模块中,用户自定义类型按缺省设置是
10、共用的。可以使用private关键字来改变其可见性。而在类模块中,用户自定义类型只能是私有的,且使用public关键字也不能改变其可见性。注意:(1)在type…endtype块中不允许使用行号和行标号。(2)用户定义类型也可以包含对象。Eg:privatetypeaccountpackfrminputasformdbpayrollaccountasdatabaseendtype10.2用户定义类型---self-definetype10.2用户定义类型---self-definetype(