《《VB程序设计基础》第4章 函数与过程》由会员分享,可在线阅读,更多相关《《VB程序设计基础》第4章 函数与过程(16页珍藏版)》请在人人文库网上搜索。
1、第4章函数和进程,编写4.1过程和传递调用4.2参数4.3多模块编程4.4小节点,编写和调用4.1.1函数过程,1函数过程编写格式:Public|PrivateStatic Function(正式参数声明列表)As函数体End FunctionPublic声明函数可以由另一个表单、模块调用。Private选项是默认值。(2) Static将函数名和在函数中声明的局部变量声明为静态变量(请参阅第4.3.3节)(3节),函数体必须具有实现该函数运算的声明和执行语句中的至少一个赋值语句。调用函数后的返回值是返回时函数名称的当前值。(4)将通常调用和调用的过程之间要相互传递的数据用作参数(表单参数)。。
2、4.1.1函数过程的创建和调用,形参数声明格式:Byval|ByRef变量名As类型标识符数组名称()As类型标识符形变量名称变量名称之前,Byval或ByRef的含义将在第4.2节中详细介绍。如果数组名为几何参数:对于一维数组,通常需要设置传递参数数组的元素数。对于二维数组,通常需要将两个参数分别设置为传递实际参数数组行数和列数。4.1.1函数过程的编写和调用,2函数过程的调用(1)定义为Private的所有过程只能由该表单中的过程调用。函数名称(实际列表)(2)定义为Public的任何过程都可以由当前项目中其他表单上的过程调用。调用格式为表单名称。函数名(实际列表)(3)通常需要调用Fun。
3、ction过程,就像VB内部函数一样,调用后返回的结果是1函数的值。如稍后所述,您也可以使用Call命令调用Sub过程,如Call函数名(实际列表),但是以这种方式调用函数时,VB计算机会放弃返回值,因此无法找到所需的函数值。4.1.2 SUB进程的创建和调用、程序中多次重复执行的作业进程以及VB允许用户将这些操作自定义为SUB进程。与函数进程不同,这些迭代任务不是在计算中返回值,而是完成特定任务。返回多个值的操作有时也会创建SUB进程。1SUB流程创建格式:Public|PrivateStatic SUB(几何参数列表)Sub流程主体end SUB流程主体:无法为Sub流程名称分配值;执行E。
4、xit Sub语句会将控件返回给调用方。函数过程名必须在函数体中指定值。这是因为在函数过程调用结束时,函数名作为获取的值用于调用方表达式的计算。不能为SUB过程名指定值。这是函数过程和SUB过程之间最重要的区别之一。4.1.2编写和调用Sub过程,2 SUB过程调用格式:Call Sub过程名(实际列表)或SUB过程名实际列表Public或Private属性对与函数过程相同的SUB过程调用的影响。特别要注意,事件进程也是Sub进程。换句话说,事件流程也可以在执行阶段以Call陈述式呼叫。Command1_Click事件包含“hello!”在Form_Click执行期间,语句“Call Comm。
5、and1”也将激发Command1_Click事件,并显示“hello!即可列印区段。自定义Sub过程还可以命名形参数,并允许在事件期间重命名形,例如在编写代码时将键ascii重命名为k。由值4.2.1传递的形变量名前面的表达式是Byval形参数的传递方式,在过程创建时由形参数声明确定,由值传递的步骤如下:(1)创建形参数变量的步骤(即,如果实际变量为变量,则不是实际参数变量)。(2)将实际表达式的值复制到几何变量。(3)过程调用结束后,几何参数变量将被取消(存储空间从系统中回收)。按值传播是单向传播。换句话说,由于参数更改不会更改实际变量变量,因此使用以下过程swap交换两个数字变量的值是错。
6、误的。,传递到值4.2.1,传递到值2的类型转换如果实际表达式值与形变量类型不同,则VB将根据以下规则转换为相同类型,然后复制到形变量中:(1)形参数值类型:形参数是整数,实际参数表达式是浮点类型,其值通过舍入后的值分配给形变量。使用实际表达式作为字符型时,将字符值分配给文本参数变量。“123”等于123,“12a”发生错误。(2)将文字转换为字符串:将文字转换为数值会将值分配给文字变量(123等于123)。4.2.2传递到地址,1传递到地址的参数名前面的修饰符将传递到地址,Byref没有参数传递方式的说明(默认值)。(1)如果文字不是常数、函数等变量,则文字被声明为传递到地址,但实际上是作为。
7、值传递的。(2)按地址传递时,参数值的变化是实际变量的变化。如果值以单向方式传递给调用中调用的函数,则参数的地址特定传递是双向传递方法,在调用结束和返回控制时,实际参数的值将成为该参数的值。双字符参数对应于相同类型的数组名,数组参数按地址仅传递一种方法。这里不讨论特定于地址的转发实现机制。从程序员的角度来看,只需理解形变量是实际变量等变量。4.3.1标准模块,标准模块中存储的流程是常规流程。以前,表单的公用进程写入了此表单的公用部分,现在可以考虑将这些公用进程写入标准模块。1在“创建标准模块”下拉菜单的“工程”下,单击“添加模块”选项以显示系统,如图4-3所示。要显示记录了两个公用流程的“标准。
8、模块”窗口(如图4-4所示),请选择“新建”选项卡。图4-3添加标准模块图4-4标准模块的“代码”窗口中的常规进程编辑,4.3.1标准模块,2调用交叉模块将常规进程写入表单的常规部分,或将某些常规进程写入标准模块,或从其他模块、表单中调用的常规进程是什么?(1)使用关键字Private公式的常规进程只能从本模块中调用。例如,从Form1修改为Private的常规进程只能由该表单上的事件进程调用。图4-3(b)中定义的标准过程x2只能从该模块调用。(2)标准模块中使用关键字Public修饰的典型过程可以由项目中的任何模块调用。(3)使用Public关键字装饰的表格的常规流程,以便项目中的所有其他。
9、模块调用。4.3.2变量范围、变量按范围划分,可分为本地卷、模块级别和全局卷三种。1本地卷事件、函数、Sub进程中声明的变量(包含数组)或Const语句中声明的符号常量是本地量。本地卷的范围仅限于该区域所在的进程,不能被其他进程引用。示例:在示例4-10中,函数进程delkg,命令进程Command1声明了变量I,每个变量都是不同的变量。如果未在函数进程delkg中显式声明变量I,则该表单的代码窗格中未声明模块级变量I,并且该进程的I也是本地的,因为它是变体类型的本地。2模块级别量位于模块的常规对象声明部分,未声明为Public的变量(包括数组)和符号常量是模块级别量。模块级别的范围仅限于该模。
10、块所在的模块,不能被其他模块中的进程引用。4.3.2变量范围,3全局量位于模块的常规对象声明部分,Public语句声明的变量,符号常量为全局量。整体数量可以在整个专案中参考,当其他表单参考时,必须在变数名称或符号常数名称之前指示表单名称。例如,在表单Form1的语句“x=Form2.k”中引用的变量k必须是表单Form2的“代码”窗口、常规模块部分、声明为Public的全局变量。否则,不能在表格中引用。数组,固定长字符串不能声明为Public。4.3.3变量寿命,变量的作用空间中,变量有范围。在变量的作用时间里,变量有生存时间。在程序执行过程中,根据变量的生命周期将变量分为静态变量(Stati。
11、c)和动态变量(Dynamic)。1动态变量动态变量仅在程序运行进入变量的进程时分配给相应的变量内存空间,退出进程时变量占用的内存空间自动释放,其值消失。使用Dim语句在进程中声明的局部变量属于动态变量,在进程运行结束后,不会保留变量的值,每次重新运行每个回放进程时都会重新声明变量并分配存储空间。4.3.3变量寿命,2静态变量静态变量是在程序执行期间终止变量所在的进程时保留其值的变量,即变量占用的内存空间不会释放的变量。以后重新启动进程时,继续使用变量值。使用Static语句声明的局部变量是静态变量。静态变量只能在过程中声明,而不能在常规对象声明部分声明。要使流程中的所有本地变量成为静态变量,请在流程头中添加Static关键字。无论Sub进程aa中声明为Static、Dim或Private的变量(如Private Static Sub aa(),还是隐式声明的变量,它都将成为静态变量。函数进程和自定义进程都可以通过在进程头中添加Static关键字来进一步说明。4.4小注释、程序中多次重复的作业进程、调用系统函数无法实现的情况下,VB可以将这些作业自定义为函数过程或Sub进程。要定义函数过程或Sub过程,必须熟悉过程定义的格式以及调用方和定义的过程之间传递参数的方式和规则。需要为项目中的其他模块调用的通用进程必须声明为关键字Public,多个通用进程可以集中在标准模块上。而且。