分享

VB程序设计过程(二)

 你喜欢那个 2012-05-13

8.3 参数传送

8-3  a数组与p数组具有相同的起始地址

 

8.3.2  数组参数的传送


 

举例说明数组参数的传送过程。
例如,假定定义了如下过程:

Sub S(a( ),b( ))

End Sub

可以用下面的语句调用该过程:

Call S(p( ),q( ))
【例8.6】编写一个Function过程,求数组的最大值。

8.4  可选参数与可变参数

8.4.1  可选参数

举例说明使用Optional关键字,定义带可选参数的过程,并在过程体中通过IsMissing函数测试调用时是否传送可选参数。

Sub Multi(fir As Integer, sec As Integer, Optional third)

    n=fir*sec

    If  Not IsMissing(third) Then

      n=n*third

    End If

    Print n

End Sub

在调用上面的过程时,可以提供两个参数,也可以提供3个参数,都能得到正确的结果。例如,如果用下面的事件过程调用:

Private Sub Form_Click()

   Multi 10,20

End Sub

则结果为200,而如果用下面的过程调用:

Private Sub Form_Click()

   Multi 10,20,30

End Sub

则结果为6000

上面的过程只有一个可选参数,也可以有两个或多个。但应注意,可选参数必须放在参数表的最后,而且必须是Variant类型。

8.4.2  可变参数

1.可变参数定义

可变参数过程通过ParamArray命令来定义,一般格式为:

Sub过程名(ParamArray 数组名)

2.举例说明可变参数过程的用法

Sub Multi (ParamArray Numbers( ))

        n=1

        For Each x In Numbers

        n=n*x

        Next x

        Print n

End Sub

Private Sub Form_Click()

   Multi 2,3,4,5,6

End Sub

8.5  

用对象作为参数与用其他数据类型作为参数的过程没有什么区别,其格式为

Sub过程名(形参表)

    语句块

  [Exit Sub]

End Sub

“形参表”中形参的类型通常为ControlForm。注意,在调用含有对象的过程时,对象只能通过传地址方式传送。因此在定义过程时,不能在其参数前加关键字ByVal

8.5.1  窗体参数

下面通过一个例子来说明窗体参数的使用。

【例8.7】假定要设计一个含有多个窗体的程序,该程序有4个窗体,要求这4个窗体的位置、大小都相同。

8.5.2  控件参数

和窗体参数一样,控件也可以作为通用过程的参数,即在一个通用过程中设置相同性质控件所需要的属性,然后用不同的控件调用此过程。

【例8.8】编写一个通用过程,在过程中设置字体属性,并调用该过程显示指定的信息。

小结:

Visual Basic6.0提供了十分灵活的、安全的参数传送方式,允许使用可选参数和可变参数。在调用一个过程时,可以向过程传送可选的参数或者任意数量的参数。Visual Basic还允许用对象,即窗体或控件作为通用过程的参数。在有些情况下,这可以简化程序设计,提高效率。实际上,在Visual Basic中,还可以向过程传送对象,包括窗体和控件。

本讲重点介绍过程调用的参数传递机制及一些特殊的参数。

作业:

1.如果形参是数组,调用时实参是否一定要求使用数组?

2.在定义函数过程时,函数名在函数中可以当简单变量一样使用吗?

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多