У меня есть несколько процедур, которые используют FileSystemObject. Я считаю, что это довольно удобно.
Вопрос. Имеет ли смысл передавать существующий экземпляр FileSystemObject из «основной» процедуры в эти другие процедуры в качестве аргумента, вместо того, чтобы каждая процедура создавала свой собственный экземпляр FileSystemObject?
Пример: лучше ли это сделать каким-либо образом:
Sub MainSub()
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
Call OtherSub(FSO, myargs)
' call other subs and functions that use FileSystemObject
End Sub
Sub OtherSub(FSO, myargs)
' Do stuff with FSO
' call other subs and functions that use FileSystemObject
End Sub
, что я видел, по крайней мере, один программист, а не следующее, что я обычно делаю:
Sub MainSub()
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
Call OtherSub(myargs)
' call other subs and functions that use FileSystemObject
End Sub
Sub OtherSub(myargs)
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
Call OtherSub(myargs)
' Do stuff with FSO
' call other subs and functions that use FileSystemObject
End Sub
Я вижу идею сделать первое в том, что это потенциально снижает издержки, связанные с наличием нескольких экземпляров FileSystemObject. Но кажется ужасно громоздким, чтобы каждый раз приводить аргумент FSO. А если серьезно, накладные расходы действительно такие большие?