vb中的过程与函数

来源:互联网 发布:如何优化自己的代码 编辑:程序博客网 时间:2024/05/17 04:35


 

      过程与函数的区别在于:是否有返回值。

           1、  Private:在模块中使用,而Public则可以在全局使用。

           2、  Static,表示该过程中的局部变量是静态变量,过程结束后不释放局部变量所占的内存单元,即每次调用变量并不进行初始化。

           1、  程序一般默认为byref传递。

           2、  Byval、byref传递的区别:用一个实例说明:

   (窗体中代码如下:

Private Sub Command1_Click()   Dim m As Long   m = 100   mysub m   MsgBox "m=" & m   End Sub


模块窗体代码:

Public Sub mysub(ByVal n As Long)  n = n + 100End Sub


        其运行结果:100,但是窗体代码不变,将模块中的传递方式改为:byref,则结果为200.

           3、  Optional:可选的,可缺省的。

 

 例如:编写程序实现5和8的阶乘:

Private Sub Command1_Click()  Dim i As Integer, total As Single  Call fact(5, total)  Text1.Text = "5!=" & total  End SubPrivate Sub Command2_Click()Dim i As Integer, total As Single  Call fact(8, total)  Text1.Text = "8!=" & total  End SubPrivate Sub fact(n As Integer, total As Single)  Dim i As Integer  total = 1  For i = 1 To n  total = total * i  Next  End Sub

 


问题:为什么我们要使用过程?而不直接编写呢?

     当然,在上面这道题目中我们完全可以直接编写代码,无需采用过程来实现,但是,如果我们还要在其他窗体里使用fact()过程怎么办?还是每个窗体都定义一次吗?可行吗?那么我们需要定义一个模块窗体,用public把fact()定义在模块里,然后才能保证其他窗体可以调用此过程。

     函数必须要有参数。而过程对参数没有强制要求。

 

原创粉丝点击