在各种编程语言中调用函数或过程时,都需要使用参数。VB中使用的参数比较特殊,有两种类型:引用参数和传值参数。正确理解这两种参数对实际编程工作会有很大帮助。
在函数或过程中使用一个参数时,仅使用其值而不能改变其初值,这样的参数称为传值参数,而在使用中初值可以被改变的参数则称为引用参数。在函数或过程中对于引用参数使用的是它本身,某些操作可能会改变参数原来的值;而对于传值参数,则可以理解为操作的是它在另一个地址存储的一个复制品,尽管这个复制品的值可能发生变动,却不会影响传值参数自身。
下面通过一个例子来说明这两种参数的区别:
1、在某窗体的通用说明区中编写一个自定义函数Dou—ble 如下:
Function Double (A As Inte—ger)A=8Double =2*AEnd Function这是一个非常简单的求一个数的两倍的函数,其中参数A 定义为整型,是引用参数。
2、在窗体中放置一个按钮command1,编写command1_click()过程如下:
Private Sub command1_click()Di m A As IntegerDi m B As IntegerA=6B=Double(A)Print "A="+Str$(A)Print "B="+Str$(B)End Sub
在本过程中将A 赋初值6,以A 为参数调用函数Double ,返回值保存在B中。运行程序,结果为:
A=8B=16
从运行结果可以看出,虽然在过程command1_click()中给A 赋初值6,但在语句B=Double (A)调用函数Double 后,Double 函数中又给A 重新赋了值(A=8),从而影响函数的返回值,引用参数A 的初值也被改变。
如果将Double 函数的参数说明项改为(By Val AAs Integer),用By Val 将A说明为传值参数,再运行程序,结果为:A=6B=16
这是由于使用By Val 将A 定义为传值参数,在调用Double 函数时,只是将A 的值传给该函数使用,尽管函数中对A 重新赋了值,但只是对A 的复制品进行操作并影响到函数的返回值,却并不涉及command1_click()过程中的A 本身,因此输出的结果中A 的初值仍为6。
文章来源于领测软件测试网 https://www.ltesting.net/
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073