1. 1、本文档共61页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch06 过程

第六部分 过程 Sub过程 Function过程 过程的递归调用 调用过程时的参数传递 其它类型的参数 函数返回自定义类型值或数组 §1 Sub过程 程序按功能分为多个模块,每个模块的代码中又分为若干相互独立的过程,每个过程完成特定的任务。 事件过程是过程的一种。 引入通用过程,可以将一个庞大的过程分为多个相对独立的小过程,便于程序调试,减少代码重复。 通用过程分为:Sub过程、Function过程。 §1 Sub过程 Sub过程也称子过程,是指以规定语法结构组织的、可以被重复调用的、具有特定功能的相对独立的语句块。 一、声明Sub过程 [Private|Public][Static] Sub 过程名([形式参数]) 过程体 End Sub 其中,Public声明全局过程,Private声明模块级过程,默认为Public。 Static表明本过程中所有过程级变量均为静态。 使用Exit Sub语句可以使程序从Sub过程中退出。 §1 Sub过程 每个通用过程都必须有一个过程名,与事件过程名不同,通用过程名由程序员指定,需要遵循变量命名规则,且在同一模块中不能重复,也不能与变量名重复。如以下程序是错误的: Dim x As Integer Sub x() End Sub 事件过程是Visual Basic预先定义好的,过程名和参数情况(类型、个数)都不能改变,程序员只能向其中填写过程体语句,以确定其功能。而通用过程均由程序员确定。 §1 Sub过程 Sub过程声明时,在过程名后的圆括号中的参数(相当于过程级变量)称为“形式参数”,简称“形参”。一个过程可以有0个或多个形参,使用逗号分隔,定义形参的格式为: 形参名1 [As 类型名],形参名2 [As 类型名]… 形参的命名规则与变量相同,作用范围为过程级,不能与本过程中的过程级变量重名。若省略As子句,则类型为变体类型。 模块中所有过程(包括事件过程、通用过程)的声明都是平等、并列的。不能在一个过程内声明另一过程。如下页的代码: §1 Sub过程 Sub mySub1() 默认为全局过程 Static a As Integer a为静态变量 Dim b As Integer b为非静态变量 End Sub Private Sub Form_Load() End Sub Private Static Sub mySub2() 模块级过程 Dim x As Integer x为静态变量 End Sub §1 Sub过程 二、调用Sub过程 在其它过程中执行已声明的Sub过程称为对Sub过程的调用。 Call 过程名(实际参数1,实际参数2…) 过程名 实际参数1,实际参数2… 第一种方法中,必须用圆括号将所有实参括起来,如果Sub过程不需要参数,则调用时括号为空或省略。 第二种方法中,即使有参数也不能使用括号。 VB中的事件过程一般由系统自动调用,需要时也可以通过上述方法调用。通用过程必须通过上述方法之一调用,否则不会执行。 §1 Sub过程 Sub mySub1(m As Integer, n As Integer) Print m, n End Sub Private Sub Form_Load() Call mySub1(1, 3) 过程中的形参m=1,n=3 mySub1 1, 3 Call mySub2 VB将后面的空括号自动去掉 mySub2 End Sub Private Static Sub mySub2() Call Form_Load 调用窗体的Load事件过程 Form_Load End Sub §1 Sub过程 使用第二种方法调用过程时,虽然不能为参数加括号,但可以对每个实参分别加括号。如: Call mySub1(1, 3) 正确 mySub1 (1), (3) 正确 mySub1 1, (3) 正确 mySub1 (1,3) 错误 Call mySub1 1,3 错误 与使用变量相同,如果程序中存在多个同名的全局过程,则优先使用本模块中的过程,如果要使用其它模块中的过程,则应在过程名前面指明其来源。如果要调用另一窗体模块中的全局过程,则无论是否存在重名,都必须指明其来源。 §1 Sub过程 三、使用Sub过程 在过程a中调用过程b时,首先将实参依次赋给形参,然后将a中的所有过程级变量保存到堆栈中,再执行b中的所有语句,所有语句结束后,根据堆栈中的数还原a中的过程级变量,继续执行a中的其余语句。 此时,a称为父过程(调用者),b称为子

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档