VB考试教程:过程之子过程

文章作者 100test 发表时间 2007:03:10 18:33:43
来源 100Test.Com百考试题网


2、 子过程(Sub过程)

子过程是在响应事件时执行的程序段。将模块中的代码分成子过程后,在应用程序中查找和修改代码变得更容易了,子过程类似于用户自定义函数,不同之处是子过程不返回与其名称相关联的值,子过程一般用来从用户那里得到输入数据、显示或打印信息,或者操纵与某一条件相关的几种属性。子过程也用来在过程调用中处理和返回若干个变量。大多数函数只能返回唯一一个值,但子过程却能够返回多个值。

(1)定义Sub子过程

定义子过程的语法格式:

[Private|Public|Friend][Static]Sub过程名[(参数列表)]

[程序段]

[Exit sub]

[程序段]

End Sub

例如:

Private Sub Subtest()
Print"This is a Sub procedure"
End Sub

说明:

1)Sub过程以Sub开头,以End Sub结束,在Sub和End Sub之间是描述过程操作的语句块,称为“过程体”或“子程序体”。

格式中个参量的含义如下:

Public(可选的):表示Sub过程是公有过程,可以在程序的任何地方调用它。各窗体通用的过程通常在标准模块中用Public定义,在窗体层定义的通用过程一般在本窗体中使用,也可以在其它窗体模块中使用。

Private(可选的):表示Sub过程是私有的,只能被本模块中的其它过程访问,不能被其它模块中的过程访问。

Friend(可选的):只能在类模块中使用。表示该Sub过程在整个工程中都可见的,但对对象实例的控件者是不可见的。

Static(可选的):表示在每次调用过程时,局部变量的值保持不变。如果省略Static,则局部变量默认为”自动“的,即在每次调用过程时,局部变量被初始化为0或空字符串。Static属性对在Sub外声明的变量不会产生影响,即使过程中也使用了这些变量。

注:如果没有使用Private,Public或Friend等,Sub过程在缺省情况是公用的。

过程名(必需的):Sub的名称遵循标准的变量命名约定。在同一个模块中,同一个变量名不能既做Sub过程名,又做Function过程名。

参数列表(可选的):代表在调用时要传递给Sub过程的参数的变量列表。如果不止一个参数,则由逗号分开。

“参数列表”指明了调用时传送给过程的参数的类型和个数,每个参数的格式为:

[ByVal]变量名[()][As数据类型]

这里的“变量名”是合法的VB变量名或数组名,如果是数组,则要在数组名后面加一对括号;

“数据类型”指的是变量的类型,如果省略,则默认为Variant;

变量名前面的“ByVal”是可选的。如果加上ByVal,则表明该参数是“传值”参数,否则为“引用”参数。关于这方面内容将在后面详细介绍。

2)在过程体内可以用一个或多个Exit Sub 语句,执行从一个Sub过程中退出。

3)Sub过程不能嵌套。也就是说,在Sub过程内,不能定义Sub过程或Function过程;不能使用GoSub,GoTo或Return来进入或退出Sub过程,只能通过调用执行Sub过程,而且可以嵌套调用。

4)Sub过程可以是递归的,也就是说,该过程可以调用自己来完成某个特定的任务。不过,递归可能会导致堆栈上溢。通常Static关键字和递归的Sub过程不在一起使用。

5)在过程调用中,发送到子过程的参数值和类型必须与子过程声明语句中参数值和类型相符。

下面是一个Sub过程的例子:

Sub Tryout(x As Integer,ByVal y As Integer)
x=x 100
y=y*6
print x,y
End Sub

上面的过程有两个形式参数,其中第二个前面有ByVal,表明该参数是一个传值参数。

过程可以有参数,也可以不带任何参数——称无参过程。如下例:

Sub ContinueQuery()
Do
Response$=InputBox$("Continue(Y or N)?")
If Response$="N" Or Response$="n" Then End
If Response$="Y" Or Response$="y" Then Exit Do
Loop
End Sub

对于无参过程,调用时只写过程名即可。

(2)建立Sub过程

Sub过程可以在标准模块中建立,也可以在窗体模块中建立。

标准模块中建立过程的方法有两种。

第一种方法操作步骤为:

1)“添加模块”,同时打开模块“代码窗口”;

2)“工具”菜单/“添加过程”命令,打开“添加过程”对话框;

3)在“名称”框中输入要建立的过程的名字(例如Tryout);

4)在类型栏内选择要建立的过程的类型。如果建立子过程,则选择“子过程”,同样,如果建立的是函数过程,则选择“函数过程”;

5)在范围栏内选择过程的适用范围。选择“公有的”,则建立的过程可用于本工程内所有窗体模块,选择“私有的”,只能用于本标准模块。


相关文章


VB考试教程:过程之子过程
2006年9月全国计算机等级考试二级笔试试卷Java语言程序设计
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛