VB函数中两种参数的区别
来源:岁月联盟
时间:2007-02-01
?在函数或过程中使用一个参数时,仅使用其值而不能改变其初值,这样的参数称为传值参数,而在使用中初值可以被改变的参数则称为引用参数。在函数或过程中对于引用参数使用的是它本身,某些操作可能会改变参数原来的值;而对于传值参数,则可以理解为操作的是它在另一个地址存储的一个复制品,尽管这个复制品的值可能发生变动,却不会影响传值参数自身。
?下面通过一个例子来说明这两种参数的区别:
?1、在某窗体的通用说明区中编写一个自定义函数Dou—ble 如下:
?Function Double (A As Inte—ger)?A=8?Double =2*A?End Function?这是一个非常简单的求一个数的两倍的函数,其中参数A 定义为整型,是引用参数。
?2、在窗体中放置一个按钮command1,编写command1_click()过程如下:
?Private Sub command1_click()?Di m A As Integer?Di m B As Integer?A=6?B=Double(A)?Print "A="+Str$(A)?Print "B="+Str$(B)?End Sub
?在本过程中将A 赋初值6,以A 为参数调用函数Double ,返回值保存在B中。运行程序,结果为:
?A=8?B=16
?从运行结果可以看出,虽然在过程command1_click()中给A 赋初值6,但在语句B=Double (A)调用函数Double 后,Double 函数中又给A 重新赋了值(A=8),从而影响函数的返回值,引用参数A 的初值也被改变。
?如果将Double 函数的参数说明项改为(By Val AAs Integer),用By Val 将A说明为传值参数,再运行程序,结果为:?A=6?B=16
?这是由于使用By Val 将A 定义为传值参数,在调用Double 函数时,只是将A 的值传给该函数使用,尽管函数中对A 重新赋了值,但只是对A 的复制品进行操作并影响到函数的返回值,却并不涉及command1_click()过程中的A 本身,因此输出的结果中A 的初值仍为6。?
上一篇:VB编程实用精典小技巧3例
下一篇:如何自动移动Mouse