VBS 函数和过程默认的传递方式
2015-07-18 13:52
253 查看
在介绍过程和函数的参数时跳过了一个概念:传址和传值。一个参数是传址还是传值取决于过程或函数定义中的声明。传址的参数用 ByRef 关键字说明,而传值的参数既可以用ByVal 关键字说明也可以不加任何说明——也就是说,没有明确地指定是哪一种的话,ByVal 就是默认值。
只可惜这段文字是错误的,VBS 过程和函数参数传递的方式默认是 ByRef,测试如下:
[vb] view
plaincopyprint?
Function f(x,y)
t = x
x = y
y = t
End Function
x = 123
y = 456
WSH.Echo x, y '123 456
x = 123
y = 456
f (x), (y)
WSH.Echo x, y '123 456
x = 123
y = 456
Call f(x,y)
WSH.Echo x, y '456 123
x = 123
y = 456
Call f((x),(y))
WSH.Echo x, y '123,456
x = 123
y = 456
z = f(x,y)
WSH.Echo x, y '456,123
x = 123
y = 456
z = f((x),(y))
WSH.Echo x, y '123,456
除了证明 VBS 过程和函数参数传递的方式默认是 ByRef 以外,该脚本还说明了当用括号把表达式括起来的时候,内部会创建一个临时变量来保存括号中表达式的值
只可惜这段文字是错误的,VBS 过程和函数参数传递的方式默认是 ByRef,测试如下:
[vb] view
plaincopyprint?
Function f(x,y)
t = x
x = y
y = t
End Function
x = 123
y = 456
WSH.Echo x, y '123 456
x = 123
y = 456
f (x), (y)
WSH.Echo x, y '123 456
x = 123
y = 456
Call f(x,y)
WSH.Echo x, y '456 123
x = 123
y = 456
Call f((x),(y))
WSH.Echo x, y '123,456
x = 123
y = 456
z = f(x,y)
WSH.Echo x, y '456,123
x = 123
y = 456
z = f((x),(y))
WSH.Echo x, y '123,456
除了证明 VBS 过程和函数参数传递的方式默认是 ByRef 以外,该脚本还说明了当用括号把表达式括起来的时候,内部会创建一个临时变量来保存括号中表达式的值
相关文章推荐
- 【问题】不能加载 MSCOMCTL.OCX(机房问题)
- VB 中窗体发现冲突名称,将使用名称...怎么解决?
- 机房重构之接口
- 【VB】table表列求和(机房问题)
- 【VB】显示本地机器名(机房问题)
- VB读取超过2G的数据文件
- 中望CAD VBA检测文件是否存在
- VB添加滚轮支持
- VB编程概述
- 【VBS】检索Outlook本地邮箱
- 【VBS】使用Visual Studio调试VBS程序
- 【VBA研究】如何将单元格数据赋给数组
- UFT VB脚本(更新中)
- 【VBA研究】进入文本框后其内容全选
- VB课本总结
- VB前四章
- 一句话vbs下载
- vb.net Datagridview 下拉框应用
- 三种扩展 Office 软件功能的开发模型对比 – Office Add-In Model, VBA 和 VSTO
- vb.net操作word