您的位置:首页 > 其它

访问Com的属性和方法时,如何降低系统的开销.

2006-01-30 09:39 369 查看
如下代码:

holiday.bar.fox.qa = holiday.bar.fox.ac(1)

If holiday.bar.fox.ka = holiday.bar.fox.abc Then ....

下面是代码的执行步骤:
(1)变量holiday被解析为全局变量。
(2)变量bar 被解析为holiday的成员。一次Com的方法调用。
(3)变量fox 被解析为holiday.bar的成员。又一次Com的方法调用。
(4)变量ac被解析为holiday.bar.fox的成员。又一次Com的方法调用。
(5)调用holiday.bar.fox.ac(1)
(6) 再次执行步骤(1)至(3)以解析qa.系统并不知道调用ac是否改变对象模型,因此
必须再次执行步骤(1)至(3)以解析qa.
(7) 将qa解析为holiday.bar.fox的成员,赋值.
(8) 再次执行步骤(1)至(3) 以解析ka.
(9) 再次执行步骤(1)至(3) 以解析abc.
这样一来,效率相当差.
以VBScript写此代码的快速方法是:
Set myobj = holiday.bar.fox '仅解析变量一次.
myobj.qa=myobj.ac(1)
If myobj.ka =myobj.abc Then ...
如果用VBScript 5.0 以上版本,还可以使用With 语句,如下:
With holiday.bar.fox
.qa=.ac(1)
if .ka=.abc Then ...
End With
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: