Ich bin der Meinung, dass man das nicht pauschal beantworten kann.
Einerseits stehen etliche Objekte nach der ersten Instantiierung (die ja sowieso notwendig ist) sowieso im Speicher zu Verfügung. Insofern ist die Performancefrage von beispielsweise
Dim session As New NotesSession
dim dbCurrent as NotesDatabase
Dim szServerName as String
Set dbCurrent = session.CurrentDatabase
szServerName = dbCurrent.Server
Messagebox szServername
versus
Dim session As New NotesSession
Messagebox session.CurrentDatabase.Server
eher eine Randbemerkung.
Für mich steht da eher die Frage der
- doppelten Deklaration (in QuerySave - nachdem Source eh instantiiert ist - noch das Backend-Dokument erneut zu instantiieren, halte ich für doppelt gemoppelt)
- der Lesbarkeit (und das ist manchmal - vor allem bei umfangreicheren Code! - essentiell). Und da muss es wohl jeder nach seinem Gusto halten. Bleiben wir beim Beispiel QuerySave: Ein Source.Document ist für mich sprechender als ein Set docCurrent = Source.Document und anschliessender Gebrauch als docCurrent. Aber *das* muss m.E. jeder selbst entscheiden bzw. muss man im Team gemeinsam festlegen.
Eine Gefahr sehe ich (und habe sie auch kennengelernt), wenn man mit der Übernahme von Properties in Variable arbeitet: Es geht (im Gegensatz zum direkten Zugriff auf das Objekt und seine properties) viel schneller, dass man zwischendurch der Variablen "aus Versehen" einen neuen, ganz anderen Wert zuweist, da man den Bezug verloren / übersehen hat. Mit dem Objekt an sich (nochmals: Das steht sowieso im Speicher!) geht das nicht ganz so einfach.
Aber nochmals: Jeder nach seinem Gusto, solange "Sauberkeit und Ordnung im Schlachthof" herrscht.
Bernhard