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