第8章 变量与过程的作用范围

第8章 变量与过程的作用范围

ID:41357728

大小:266.00 KB

页数:42页

时间:2019-08-22

第8章 变量与过程的作用范围_第1页
第8章 变量与过程的作用范围_第2页
第8章 变量与过程的作用范围_第3页
第8章 变量与过程的作用范围_第4页
第8章 变量与过程的作用范围_第5页
资源描述:

《第8章 变量与过程的作用范围》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第8章变量与过程的作用范围第8章变量与过程的作用范围在VB中,应用程序是由若干个过程组成的,这些过程一般保存在窗体文件(.frm)或标准模块文件(.bas)中。变量在过程中是必不可少的。根据变量或过程所处的不同位置,可被访问的范围是不相同的。变量与过程可被访问的范围称为变量与过程的作用域。8.1代码模块的概念在建立VB的应用程序时,应首先设计代码的结构。VB应用程序的结构通常如图8-1所示。图8-1VB应用程序的结构VB将代码存储在3种不同的模块中:窗体模块(窗体)、标准模块(模块)和类模块。在这3种模块

2、中都可以包含声明(常数、变量、动态链接库DLL的声明)和过程(Sub、Function、Property过程)。它们形成了工程的一种模块层次结构,可以较好地组织工程,同时也便于代码的维护,如图8-2所示。图8-2工程中的模块8.1.1窗体模块每个窗体对应一个窗体模块,窗体模块包含窗体及其控件的属性设置、窗体变量的说明、事件过程、窗体内的通用过程、外部过程的窗体级声明。窗体模块保存在扩展名为.frm的文件中。默认时应用程序中只有一个窗体,因此有一个以.frm为扩展名的窗体模块文件。如果应用程序有多个窗体,就

3、会有多个以.frm为扩展名的窗体模块文件。如果要在文本编辑器中观察窗体模块,则还会看到窗体及其控件的描述,包括它们的属性设置值,如图8-3所示。窗体模块中也可以引用该应用程序内的其他窗体或对象。从“工程”菜单中执行“添加窗体”命令,可以添加新窗体模块。8.1.2标准模块标准模块保存在扩展名为.bas的文件中,缺省时应用程序中不包含标准模块。标准模块可以包含公有或模块级的变量、常数、类型、外部过程和全局过程的全局声明或模块级声明。缺省时,标准模块中的代码是公有的,任何窗体或模块中的事件过程或通用过程都可以调

4、用它。写入标准模块的代码不必绑在特定的应用程序上,在许多不同的应用程序中可以重用标准模块。在标准模块中可以存储通用过程,但不能存储事件过程。从“工程”菜单中执行“添加模块”命令,可以在工程中添加标准模块。8.1.3类模块在VB中,类模块(文件扩展名为.cls)是面向对象编程的基础。程序员可在类模块中编写代码建立新对象,这些新对象可以包含自定义的属性和方法,可以在应用程序内的过程中使用。实际上,窗体本身正是这样一种类模块,在其上可安放控件、可显示窗体窗口。类模块与标准模块的不同之处在于标准模块仅仅含有代码,

5、而类模块既含有代码又含有数据,类模块可以视为没有物理表示的对象。8.2变量的作用范围变量的作用范围(作用域)指变量能被某一过程识别的范围。当一个应用程序中出现多个过程或函数时,在它们各自的子程序中都可以定义自己的常量、变量。这时,自然会提出一个问题,这些常量或变量是否在程序中到处可用?回答是否定的。在VB中,可以在过程或模块中声明变量,根据声明变量的位置,变量分为两类:过程级变量(Procedurelevel)和模块级变量(Modulelevel)。按照作用范围分类,过程级变量属于局部变量,而模块级变量则

6、属于全局变量。8.2.1过程级变量在一个过程内部使用Dim或Static关键字声明变量时,只有该过程内部的代码才能访问或改变该变量的值,因此被称为“过程级变量”。过程级变量的作用范围限制在该过程内部。例如:DimaAsInteger,bAsSingleStaticsAsString如果在过程中未作说明而直接使用某个变量,该变量也被当成过程级变量。用Static说明的变量在应用程序的整个运行过程中都一直存在,而用Dim说明的变量只在过程执行时存在,退出过程后,这类变量就会消失。过程级变量属于局部变量,只能在

7、建立的过程内有效,即使是在主程序中建立的变量,也不能在被调用的子过程中使用。【例8-1】过程级局部变量示例。PrivateSubForm_Activate()DimaAsInteger,bAsInteger,cAsInteger'过程级局部变量a=5:b=3PrintPrintTab(15);"a";Tab(25);"b";Tab(35);"c=a*b"Print"调用Prod前";Tab(14);a;Tab(24);b;Tab(34);cCallProdPrint"调用Prod后";Tab(14);a;

8、Tab(24);b;Tab(34);cPrintPrint"调用Sum前";Tab(14);a;Tab(24);b;Tab(34);cCallSumPrint"调用Sum后";Tab(14);a;Tab(24);b;Tab(34);cEndSubSubProd()'通用过程DimaAsInteger,bAsInteger,cAsInteger'过程级局部变量图8-7程序运行结果c=a*bPrint"Prod子过程";Tab(1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。