1. Eval函数
Eval函数主要是计算一个表达式的值并返回结果。其签名如下:[result = ]Eval(expression)
参数如下:
- result:可选项。是一个变量,用于接受返回的结果。如果未指定结果,应考虑使用Execute语句代替。
- expression:必选项。可以是包含任何有效VBScript表达式的字符串。
Dim a, b a = 1 b = 2 MsgBox Eval("a + b")
2. Excute语句
执行一个或多个指定的语句。其签名如下:Execute statements
所需要的statements参数是一个字符串表达式,其中包含一个或多个要执行的语句。如果要在statements参数中包含多条语句,应使用冒号或嵌入的分行将其分隔开。下面是Execute语句的简单示例:
Dim a, b, c, d a = 1 b = 2 Execute "c = a + b : d = a + c" MsgBox c MsgBox d
3. 自定义ForEach函数
ForEach函数有两个参数,一个是数组变量,一个是遍历方法名称。其实现代码如下: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
遍历一个整数数组的示例:
'显示数组元素方法 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")
遍历一个对象数组的示例:
'用户类 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#中的其他很多特性,以后在编写测试代码过程中,要不断去总结。
最新评论