程序启动之前必须初始化有关资源,这是非常普遍的。然而,这也使程序的启动变得很缓慢。而且,并不是每一种资源在程序启动时都必须加载。
作为优化考虑,你可以通过将资源放入属性程序中,按需要初始化资源。在属性程序中,首先声明一个静态变量以存放资源;然后,将启动的资源包含在If statement中以决定它是否初始化;最后,返回要启动的资源。
下面的代码段说明一个属性程序初始化具有选择性的资源:
Public Property Get MyCollection() As Collection
Static objCollection As Collection
If objCollection Is Nothing Then
'Initialize
Set objCollection = New Collection
With objCollection
Call
.Add("Value 1")
Call
.Add("Value 2")
End With
End If
Set MyCollection = objCollection
End Property
属性程序第一次被调用时,objCollection变量的值是空的,所以初始化代码被执行。属性程序第二次被调用时,由于对象已经被建立,则初始化不会被执行。