我經常在我的項目中使用Filesystemobject,在很多模塊中,我不想在每次新建時(在我需要時)實例化它。所以我用一個Public屬性嘗試了它,如果它不存在,它將爲FSO分配一個新的Filesystemobject。但是每次Property Get被執行時,FSO都沒有,並且被新實例化。屬性Get即使靜態也不會保留值
Public Static Property Get FSO() As Object
If FSO Is Nothing Then
Set FSO = CreateObject("Scripting.Filesystemobject")
End If
End Property
Sub Test()
'at every line, the FSO is created again instead of using the old
Debug.Print FSO.GetTempName
Debug.Print FSO.GetTempName
Debug.Print FSO.GetTempName
Debug.Print FSO.GetTempName
Debug.Print FSO.GetTempName
Debug.Print FSO.GetTempName
End Sub
我只是用它錯了還是不是用這種方式? 在此先感謝。
不錯,非常感謝,我知道靜態不能完全無用。 –
感謝文森特的澄清 – 2016-08-02 10:38:59
只是好奇:這種有趣的技術是否帶來可觀的性能提升? –