




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
变量、常数和数据类型,Variabili, costanti e tipi di dati,赋值语句,Visual Basic的程序代码由语句、常数和声明等部分组成。使用最频繁的语句是赋值语句,在程序运行的过程中改变对象的属性、变量的值。语法如下: 对象.属性或变量=表达式 赋值语句是把等号右边表达式的值赋给等号左边的变量或对象的属性。,声明变量,声明变量是事先把变量通知程序。要用Dim语句声明变量。Dim语句提供了变量名:Dim 变量名As 数据类型。 在过程内部用Dim语句声明的变量,只有在这个过程执行时才存在。过程里的变量值对过程来说是局部的。 变量名必须以字母开头,不能包含嵌入的句号或者类型声明字符,不能超过255个字符,在同一个范围内必须是唯一的。 Dim语句中的As子句定义了被声明对象的数据类型或对象类型。 用关键字Public声明变量,这样使变量在整个应用程序中有效。 用关键字Static声明一个局部变量,即使过程结束,变量的值也依然保留着。,隐式声明,在使用一个变量之前并不一定要首先声明这个变量。Visual Basic用变量名自动创建一个变量,使用这个变量时,可以认为它就是显式声明的。虽然这种方法很方便,但是如果把变量名写错了,则会导致一个难以查找的错误。,显式声明,为了避免写错变量名引起的麻烦,可以规定,只要遇到一个未经过声明就当作变量的名字,Visual Basic都发出错误警告。要显式声明变量,可在类模块、窗体模块的声明段中加入Option Explicit的语句。 Option Explicit语句的作用范围只限于语句所在模块,所以,对每个Visual Basic强制显式变量声明的窗体模块、标准模块及类模块,必须把Option Explicit语句放在这些模块的声明段中。 从【工具】菜单中选择【选项】命令,再选择【编辑器】选项卡,最后再选中【要求变量声明】复选框。这样可以在任何新模块中自动插入Option Explicit语句。在工程内部,只能用打字的方法向现有模块添加Option Explicit语句。,指定变量的有效范围,一个变量在划定范围时,被看作是过程级变量,还是模块级变量,取决于声明这个变量时采用的方式。,过程内部使用的变量,过程级变量也叫局部变量,只有在声明它们的过程中才能被识别。用关键字Dim或者Static来声明它们。 在整个应用程序运行时,用Static声明的局部变量里的值一直存在,用Dim声明的变量只在过程执行期间才存在。,模块内部使用的变量,模块级变量对这个模块的所有过程都可用,但对其它模块的代码不可用。可在模块顶部的声明段用关键字Private声明模块级变量。,所有模块使用的变量,用关键字Public声明的公用变量中的值可用于应用程序的所有过程。和所有模块级变量一样,也是在模块顶部的声明段来声明公用变量。,使用几个同名的变量,如果不同模块中的公用变量使用同一名字,则通过同时引用模块名和过程名就可以在代码中区分它们。,公用变量与局部变量的比较,在不同的范围内也可以有同名的变量。用模块名限定模块级变量就可以在过程内访问这样的变量。 一般来说,当变量的名称相同而范围不同时,局限性大的变量总会用阴影遮住局限性小的变量。,窗体属性和控件的阴影,由于阴影效应,窗体属性、控件、常数和过程都被视为窗体模块中的模块级变量。窗体属性或控件的名称与模块级变量、常数、自定义类型或过程的名称相同是不合法的,因为它们的范围相同。在窗体模块内,和窗体中控件同名的局部变量会遮住同名控件。因此必须引用窗体名称或关键字Me来限定控件,才能设置或者得到这个控件的值或它的属性值。,使用同名的变量和过程,模块中的变量不能和任何过程同名,也不能和模块中定义的类型同名,但可以和公用过程或其它模块中定义的类型或变量同名。在这种情况下,从别的模块访问这个变量时,就必须用模块名来限定。 用阴影的方法可能会带来麻烦,而且可能导致难以查找的错误。对不同的变量使用不同的名称才是一个好的编程习惯。在窗体模块中,应尽量使变量名和控件名不一样。,静态变量,变量还有存活期,在这一期间变量能够保持它们的值。在存活期内一直保持模块级变量和公用变量的值。但是,对于Dim声明的局部变量以及声明局部变量的过程,只有在过程执行时这些局部变量才存在。 通常,当一个过程执行完毕,它的局部变量的值就已经不存在,而且变量所占的内存也被释放。当下一次执行这个过程时,它的局部变量会重新初始化。 把局部变量定义成静态的,从而保留变量的值,这时在过程内部用关键字Static来声明几个变量。 为了使过程中所有的局部变量为静态变量,可以在过程头的起始处加上关键字Static。,常数,在代码中要经常使用到一些常数,一次又一次地反复出现,如圆周率的数字3.1415926535897935384626等。可以用常数改进代码的可读性和可维护性。 常数是有意义的名字,取代不变的数字和字符串,但不能修改常数,也不能对常数赋以新值。在Visual Basic对象库中有一些内部的常数,是应用程序和控件提供的。,创建常数,符号的,用户定义的常数,是用Const语句来声明的。语法是: Const 常数名 As 类型=表达式 常数名是有效的符号名,表达式是数值或字符串的常数,可以包含运算符,但不能使用函数调用。 如果用逗号进行分隔,则在一行中可放置几个常数声明。 等号右边的表达式往往是数字或字符串,也可以是一个表达式,其结果为数和字符串,甚至可用先前定义过的常数定义新常数。 一旦已定义常数,就可把它放置在代码中。,设定自定义常数的范围,和变量声明一样,Const语句也有范围。 创建仅存在于过程中的常数,可以在这个过程内部声明常数。 创建一个常数,它对模块中所有过程都有效,但对模块之外任何代码都无效,可在模块的声明段中声明常数。 创建在整个应用程序中有效的常数,可以在标准模块的声明段中进行声明,并在Const前面放置关键字Public。在窗体模块和类模块中不能声明Const常数。,避免循环引用,由于常数可以用其它常数定义,所以在两个以上常数之间不要出现循环或循环引用。当程序中有两个以上的公用常数,每个公用常数都用另一个定义时,就会出现死循环。 如果出现死循环,在运行这个应用程序时,Visual Basic就会产生错误信息。不解决循环引用就不能运行程序。 为避免出现死循环,可以把公共常数限制在单一模块内,或最多只存在于少数几个模块内。,声明带数据类型的变量,在使用非变体型变量之前,必须使用Private、Public、Dim或Static语句把变量声明为As数据类型。 一个声明语句可以把几个声明组合起来。 如果不提供数据类型,则指定变量为默认类型变体型。,数值型,Visual Basic支持几种数值型:整型、长整型、单精度浮点型、双精度浮点型和货币型。 整型和长整型运算速度高,而且比其它数据类型占用的内存少;货币型支持四位小数和十五位整数,是一个精确定点数据类型,适用于货币计算,浮点型比货币型有效范围大得多,但有可能产生小数进位误差。 浮点数可以表示为“尾数E指数”或“尾数D指数”的科学记数法表示。用D把尾数和指数隔开,就会导致数值作为双精度浮点型。用这种方式使用E,就会导致把这个值作为单精度浮点型来处理。,字节型,变量包含二进制数时,使用字节型。在转换格式期间,最好用字节型变量存储二进制数。 除了一元减法外,可以对整数进行处理的运算符均可处理字节型的数据类型。因为字节型是从0到255的无符号类型,所以不能表示负数。,字符串型,字符串型的变量,字符码范围为0到255,可以声明变长和定长字符串。 用“String*大小”的语法声明一个定长字符串。在Visual Basic中,文字字符串要用引号引起来。,交换字符串和数字,如果字符串表示数值,可以把字符串赋予数值变量,也可以把数值赋予字符串变量。,布尔型,布尔型变量进行逻辑判断,只能取两个值中的一个,真或者假,存储的位数为十六位。,日期型,日期型,存储为六十四位浮点数值形式,存储日期和时间。 当其它数值数据类型转换为日期时,小数点左边的值表示日期信息,小数点右边的值代表时间,午夜为零,正午为0.5,负数表示公元1899年12月31日之前的日期。,对象型,对象型作为四个字节地址来存储,这个地址可以引用应用程序中或某些其它应用程序中的对象。可以指定一个被声明为对象型的变量去应用应用程序所识别的任何实际对象。 在声明对象变量时,可以使用特定的类,而不用一般的对象。 运行应用程序之前,Visual Basic可以决定引用特定类型对象的属性,因此,应用程序在运行时速度会更快。 在对象浏览器中列举了特定的类。当使用其它应用程序的对象,并在对象浏览器中的类列表中列举对象时,不要用变体型或一般的对象,而要声明对象,这样可确保Visual Basic能够识别引用的特定类型对象,在运行时解决引用问题。,变体型,变体型数据类型在不同场合代表不同数据类型,还包括三个特殊值:Empty、Null和Error。在赋值之前,变体型变量具有值Empty,Null表示未知的数据或丢失的数据,Error是特定值,指出已发生的过程中的错误状态,但这里并没发生正常的应用程序级的错误处理。,转换数据类型,Visual Basic提供了很多转换函数,可以用于把值转换为特定的数据类型。 对于目标数据类型,传递到转换函数的值必须是有效的。如要把长整型转换为整型数,长整型数必须在整型的有效范围之内。,数值在变量中的内部表示,变体型变量总保持十六位,无论其中存储了什么数据。对象、字符串和数组在内存里并不是存在变体之中,用四个字节的变体来保持对象引用、或者字符串或数组的指针。 如果要了解Visual Basic正在使用哪种变量类型,可使用VAR Type函数。对数组变量,它的值等于数组元素与数据类型返回值之和。,变体型变量存储的数值,当变体变量存储整个数时,Visual Basic使用最紧凑的表示,如整型、长整型、双精度浮点型等。 如果变体型变量不含数,则对变体型变量进行数学运算或函数计算就会出错。 如果把包含数的变体型变量赋给字符串变量或属性,Visual Basic自动把数的内部表示转换成字符串。,变体型变量中存储的字符串,一般说来,在变体型变量存储和使用字符串不会有问题。 连接运算是把两个表达式连接在一起,连接运算符有两个:&和+ 。前者强制两个表达式作字符串连接,而后者,若两个表达式都为字符串,则把两个字符串连接起来,若一个是字符串,一个是数字,则进行相加操作。,变体型变量中存储的日期和时间,变体型变量还可以包含时间和日期。在Visual Basic中,有几个函数返回日期/时间值。 还可以对日期/时间值进行运算。通过加减一个整数来增加或减少天数,通过加减一个分数来增加或减少时间。 存储在变体型变量的日期的有效范围从100年1月1日到9999年12月31日。计算日期时不考虑格里历采用之前的日期。如果计算1752年之前的日期,结果可能会不正确。 在代码中可以采用日期/时间文字,只要用一对井号把它们括起来,如果没有时间,时间默认为午夜零点。如果不包括日期,则日期默认为1899年12月30日。,变体型变量中存储的对象,可以把对象存储在变体型变量中。当需要高效地处理包括对象的各种数据类型时,这可能十分有用。一个数组中的所有元素都必须使用相同的数据类型。把数组的数据类型设置成变体就可以把对象连同其它数据类型一起存入同一个模块中。,内存调整,关键字Type用于定义UDT数据结构的构架。注意Type 命令并不创建数据结构,只是提供结构的详细定义。 32位的Visual Basic要在内存中以四个字节为单位对UDT结构元素进行重新排列。它实际使用的内存量可能会超过预期的数量。,创建新的数据类型,类的模块级别定义了UDT结构和私有变量,用来从整型数中返回高字节和低字节。 类使用私有模块级别来存储属性的实际值,但是对这个变量的访问则受属性过程的控制。 每个类的属性都包含一个Let过程和一个Get过程,这两个过程用于为属性赋值以及返回属性值。 最后,类包含一个公有函数,返回带符号的整数值。,使用新的数据类型,要使用类,必须把对象变量声明为New,创建了这个类的一个新的实例。 类的Value属性是默认属性。 可以采用与其它任何Visual Basic方法相类似的方法来调用Hi Byte和Lo Byte属性。,声明固定大小的数组,有三种方法声明固定大小的数组,包括公用数组,在模块的声明段中用Public语句声明数组,模块级数组,在模块的声明段中用Private语句声明数组,局部数组,在过程中用Private语句声明数组。,设定上下界,声明数组时,在数组名之后跟一个用括号括起来的上界,上界不能超过长整型数据类型的范围。 为了规定下界,可以用关键字To显式地提供下界。,包含其它数组的数组,在Visual Basic的程序设计中,有时可能需要建立变体型的数组,并与不同数据类型的数组共居一处。,多维数组,有时需要追踪记录数组中的相关信息,为了追踪记录电脑屏幕上的每个像素,需要引用它的横、纵坐标,这时,应该用多维数组存储值。 可用Visual Basic声明多维数组。 可用显式的下界来声明两个维数中的任何一个。 可以把所有这些推广到二维以上的数组,元素总数是几个维数的乘积。 可以用For循环嵌套有效地处理多维数组。,动态数组,如果希望能够在运行时具有改变数组大小的能力,可以使用动态数组。 用Dim、Public或Private语句声明数组后,给数组赋予一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国风筝LED无人机编队表演师认证考试备考指南
- 2025年医药卫生类考试趋势分析及应对策略
- 2025年中国机械制造工程师认证考试模拟题集
- 2025年中子、电子及Γ辐照装置项目合作计划书
- 2025年智能楼宇照明项目合作计划书
- 2025年智能配电自动化项目合作计划书
- 2025年滴鼻剂项目合作计划书
- 跨境电商物流 题库试题及答案 任务四 跨境电商进口物流配送方式
- 2025年增采原油起振机合作协议书
- 安徽省合肥市巢湖市2024-2025学年下学期八年级数学期末试卷(含答案)
- 2025-2026学年苏教版小学数学五年级上册教学计划及进度表
- 新版苏教版四年级上册科学(全册教案及教学计划及进度表)
- 电力市场交易体系规则培训PPT
- GB/T 18705-2002装饰用焊接不锈钢管
- 《色彩基础知识》PPT课件(详解)
- 美术作品的艺术语言
- 《综合布线系统培训》PPT课件.ppt
- 交流电源控制和保护
- 小学生数独ppt课件
- 中医痹症ppt课件
- 女儿墙安装电动吊篮相关安全计算
评论
0/150
提交评论