Evaluate
运行编译表达式并返回其当前值。
语法:expression.Evaluate()
- expression
- 必需 计算结果为 ITbExpression 的对象表达式,通常为 Compile 返回的值。
返回值为 Variant,包含表达式的结果。其子类型反映值的自然类型——例如,数值表达式为 Double,文本生成为 String,比较为 Boolean。
每次调用都会根据其绑定的当前状态重新运行表达式。如果绑定对象暴露的属性值在调用之间可能变化——宿主应用程序状态、记录集的当前行、可配置参数——对同一编译表达式求值两次可能合法地返回不同的值。
表达式内部引发的运行时错误——除零、类型不匹配、对绑定对象的无效调用——像任何其他运行时错误一样从 Evaluate 传播出来。
示例
此示例编译一个通过 AddCustomBinderObject 引用宿主对象属性的表达式,然后在属性具有不同值时求值两次。
vb
Dim Service As TbExpressionService = New TbExpressionService
Service.AddStdLibraryBinder()
Service.AddCustomBinderObject "State", Me, IsAppObject
Dim Expr As ITbExpression = Service.Compile("Counter * 2")
Me.Counter = 1 : Debug.Print Expr.Evaluate() ' 2
Me.Counter = 5 : Debug.Print Expr.Evaluate() ' 10