ByVal
2014-08-26来源:易贤网

在asp过程中有用到ByVal的参数传值,不是很理解什么意思,查询网络得出结果还有一个是ByRef传参.

详细解释一下ByVal和ByRef的意思:这两个都是在vbscript过程中传递参数用的比如:

sub forasp_cn(ByVal a,ByVal b...)或者是sub forasp_cn(ByRef a,ByRef b...)

ByVal和ByRef的区别在于:ByVal是用来传值的,而ByRef是用来传址的."值"和"址"两个不通的概念一定要弄清楚了.

ByVal传值时不会影响到原来的值

ByRef传址时会影响到原来的值

看下面的例子:

<%

Dim a =100'定义一个变量

Sub forasp_add(ByVal b)'设置ByVal过程,传递参数为b

b=b+1

End Sub

Sub forasp_add2(ByRef b)'设置ByRef过程,传递参数为b

b=b+1

End Sub

Call forasp_add(a)'调用第一个ByVal过程

response.write a'输出100,过程中b的值为101

response.write "<BR>"'换行

Call forasp_add2(a)'盗用第二个ByRef过程

response.write a'因为是传址,所以a的址的值是100,当调用+1时,a的值同时加1,所以a为101,b的值也为101

%>

使用ByVal,实际参数不变,形参变化

使用ByRef,实参变化,形参也变化

更多信息请查看IT技术专栏

推荐信息