VBScript之Eval函数与Execute语句(Array.ForEach的实现)
来源:互联网 发布:c语言判断正负 while 编辑:程序博客网 时间:2024/06/07 12:33
VBScript之Eval函数与Execute语句(Array.ForEach的实现)
每当使用C#中的Array.ForEach时,感觉很爽。最近在做QTP自动化测试时,偶然在QTP自带示例中看到一段代码可以动态调用方法,于是先喜若狂,着手改编了一下,写了一个VBScript版的Array.ForEach功能,使用起来确实不错。其实关键的一个地方就在于使用了VBScript中的Eval函数。首先我们来看看Eval函数的作用。
1. Eval函数
Eval函数主要是计算一个表达式的值并返回结果。其签名如下:
1
[result = ]Eval(expression)
参数如下:
- result:可选项。是一个变量,用于接受返回的结果。如果未指定结果,应考虑使用Execute语句代替。
- expression:必选项。可以是包含任何有效VBScript表达式的字符串。
在VBScript中,x = y可以有两种解释。第一种方式是赋值语句,将y的值赋予x。第二种解释是测试x和y是否相等。如果相等,result为True;否则result为False。Eval方法总是采用第二种解释,而Execute语句总是采用第一种。下面是Eval函数的简单示例:
1
2
3
4
Dim
a, b
a = 1
b = 2
MsgBox Eval(
"a + b"
)
2. Excute语句
执行一个或多个指定的语句。其签名如下:
1
Execute statements
所需要的statements参数是一个字符串表达式,其中包含一个或多个要执行的语句。如果要在statements参数中包含多条语句,应使用冒号或嵌入的分行将其分隔开。下面是Execute语句的简单示例:
1
2
3
4
5
6
Dim
a, b, c, d
a = 1
b = 2
Execute
"c = a + b : d = a + c"
MsgBox c
MsgBox d
3. 自定义ForEach函数
ForEach函数有两个参数,一个是数组变量,一个是遍历方法名称。其实现代码如下:
1
2
3
4
5
6
7
8
9
10
11
Sub
ForEach(source, method)
Dim
i, current
For
i = 0
To
UBound(source)
If
IsObject(source(i))
Then
'判断数组元素是否为对象
Set
current = source(i)
Else
current = source(i)
End
If
Eval(method &
"(current)"
)
'调用遍历方法
Next
End
Sub
遍历一个整数数组的示例:
1
2
3
4
5
6
7
8
9
10
11
12
'显示数组元素方法
Function
ShowValue(val)
MsgBox val
End
Function
Dim
i, arr(10)
'给数组元素赋值
For
i = 0
To
10
arr(i) = i
Next
'调用ForEach遍历
Call
ForEach(arr,
"ShowValue"
)
遍历一个对象数组的示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'用户类
Class
User
'用户属性
Public
UserName, Email
'ToString方法
Function
ToString()
ToString =
Me
.UserName &
" : "
&
Me
.Email
End
Function
End
Class
'显示用户信息方法
Function
ShowUser(usr)
MsgBox usr.ToString()
End
Function
Dim
arr(5), u
'给数组元素赋值
For
i = 0
To
5
Set
u =
New
User
u.UserName =
"user"
&
CStr
(i)
u.Email =
"user"
&
CStr
(i) &
"@xxx.com"
Set
arr(i) = u
Next
'调用ForEach遍历
Call
ForEach(arr,
"ShowUser"
)
看代码很简洁,不是嘛,原来VBScript也可以像C#一样使用ForEach。VBScript应该还能够实现C#中的其他很多特性,以后在编写测试代码过程中,要不断去总结。
0 0
- VBScript之Eval函数与Execute语句(Array.ForEach的实现)
- 今天学到的东西——vbscript之eval()函数
- php源码之路循环语句 (foreach的实现)
- VBS --函数Eval和Execute的使用和区别
- ECMAScript5新增Array方法forEach的实现
- foreach语句与for语句的区别
- JScript 中 eval 实现 VBScript ExecuteGlobal 功能, 函数 fExecuteGlobal by shawl.qiu
- Array对象的方法实现(4)----Array.prototype.findIndex和Array.prototype.forEach(实现常规参数的功能)
- 泛型的Foreach方法与foreach语句的区别
- Exec 与 eval 语句
- C#利用反射实现(js)Eval,asp(Execute)功能 动态执行类库中的函数
- C#动态执行类库中的函数:利用反射实现(js)Eval,asp(Execute)功能
- 在QTP中使用Eval与Execute
- for与foreach语句的不同
- pdo perpare() 和 execute()函数实现select语句
- MsAjax Lib-> Array.forEach 函数
- foreach语句实现循环
- vbscript之流程控制语句
- Apache 大三方法HTTP请求链接响应之HttpClient的GET和POST工具类封装
- android 点击事件分发总结
- HDU-1823-Luck and Love-二维线段树入门
- UVa455 Periodic Strings(周期串)
- 二进制字符串转整数
- VBScript之Eval函数与Execute语句(Array.ForEach的实现)
- Extjs学习笔记——Ext自定义类
- Java事件机制
- WebKit之IDL的binding
- WebKit之WebSocket
- 内存管理,readwrite,readonly,assign,retain,copy,nonatomic,的作用以及深浅拷贝
- Python(1)
- Swift 类构造器的使用
- 在servlet中用spring @Autowire 注入.