Was ist der Unterschied zwischen:VBA: Unterschied zwischen & und +
string1 + string2
und
string1 & string2
Sind sie gleichwertig? Warum haben zwei verschiedene Symbole das gleiche?
Was ist der Unterschied zwischen:VBA: Unterschied zwischen & und +
string1 + string2
und
string1 & string2
Sind sie gleichwertig? Warum haben zwei verschiedene Symbole das gleiche?
Die Ausdrücke sind gleich, solange die Operanden Strings sind. Wenn nicht, kann +
sie stattdessen abhängig von Typkonvertierungen hinzufügen. &
garantiert, dass Sie nur eine String-Verkettung erhalten und Operanden in Strings konvertieren, wenn dies möglich ist.
Es gibt ein MSDN-Eintrag über Concatenation operations in Visual Basic, die es erklärt: nur für String-Operanden wird
Der & Operator (Visual Basic) definiert, und es weitet sich immer seine Operanden zu String, unabhängig von der Einstellung der Option Strict . Der Operator & wird für die Verkettung von Zeichenfolgen empfohlen, da er ausschließlich für Zeichenfolgen definiert ist und die Wahrscheinlichkeit verringert, dass eine unbeabsichtigte Konvertierung generiert wird.
Die beiden Ausdrücke sind äquivalent, die Operatoren jedoch nicht. +
kann sowohl als arithmetischer Operator als auch zur Stringverkettung verwendet werden, &
kann nur für letztere verwendet werden.
ok dann warum und überhaupt? –
Sie haben unterschiedliches Verhalten, siehe ['+' Operator] (http://msdn.microsoft.com/en-us/library/9c5t70w2%28v=VS.80%29.aspx) vs. ['&' operator] (http://msdn.microsoft.com/en-us/library/wfx50zyk%28v=VS.80%29.aspx). –
Betrachten Sie einen mit einer Zeichenfolge verketteten Nullwert unter Verwendung von + – Fionnuala
. Die Ausdrücke sind nicht gleich, auch wenn der Wert null ist. – Fionnuala
Der MSDN-Artikel ist über Visual Basic, aber ich denke, das funktioniert auch in VBA? Es gibt keine VBA-Dokumentationsseite oder? –