2010-07-29 49 views

Antwort

4

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.

+3

. Die Ausdrücke sind nicht gleich, auch wenn der Wert null ist. – Fionnuala

+0

Der MSDN-Artikel ist über Visual Basic, aber ich denke, das funktioniert auch in VBA? Es gibt keine VBA-Dokumentationsseite oder? –

2

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.

+0

ok dann warum und überhaupt? –

+0

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). –

+0

Betrachten Sie einen mit einer Zeichenfolge verketteten Nullwert unter Verwendung von + – Fionnuala