知识库

asp函数和过程中参数ByVal与ByRef的区别

来源: 本站    类别: 知识库    日期: 2015/12/7

 

先来比较两个asp实例

 文件名称: ByVal.asp   ByRef.asp
 具体代码:

<%
Dim A : A=5
Call TestBy(A)
Response.write A

Sub TestBy(ByVal T)
 T=T+1
End sub
%>

 
<%
Dim A : A=5
Call TestBy(A)
Response.write A

Sub TestBy(ByRef T)
 T=T+1
End sub
%>

 运行结果:  5  6
 结 论:  注意:子程序TestBy(ByVal T)中T变量声明方式是ByVal
 运行结果子程序没有影响到A的值
 注意:子程序TestBy(ByRef T)中T变量的声明方式是ByRef
 运行结果A的值通过子程序发生了改变
看完了,上面的比较就知道说明意思了吧。

Byval和ByRef两者区别:
1、ByVal传值:一种将参数值而不是将地址传递给过程的方式,这就使过程访问到变量的复本。结果,过程不可改变变量的真正值。 
2、ByRef传值:一种将参数地址而不是将值传递给过程的方式,这就使过程访问到实际的变量。结果,过程可改变变量的真正值。除非另作说明,否则按地址传递参数。 
3、系统默认的是ByRef传值。

总结:
ByVal是传递值 源数据不会被修改,你可以把这个值当作自己的局部变量来使用;ByRef是传递地址,源数据可能被修改,你对这个变量的操作将对你传入的那个变量产生影响,就像指针的感觉。


相关文章


Copyright © 2004 - 2024 CNHWW Inc. All Rights Reserved
石家庄市征红网络科技有限公司版权所有 邮政编码:050051
服务电话:0311-85315152 13931185013 在线客服QQ:81447932 / 81447933 邮箱: cnhww@163.com