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

如下代码:

   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

原文地址:https://www.cnblogs.com/java20130725/p/3215987.html