35 Stimmen

Was ist der Unterschied zwischen den Operatoren + und & in VBScript?

Auf jeder Website, die sich mit VBScript befasst, wird der ' & ' ist als Operator für die Verkettung von Zeichenfolgen aufgeführt. In einem Code, den ich kürzlich geerbt habe, sehe ich jedoch den ' + ' verwendet, und ich sehe keine Fehler als Folge davon. Ist dies eine akzeptierte Alternative?

45voto

Helen Punkte 70190

El & Operator führt eine String-Verkettung durch, d.h. er erzwingt die Umwandlung von Operanden in Strings (wie der Aufruf von CStr zuerst auf ihnen). + erzwingt seinerseits die Addition, wenn einer der Ausdrücke numerisch ist. Zum Beispiel:

1 & 2

gibt Ihnen 12 in der Erwägung, dass

1 + 2
"1" + 2
1 + "2"

Sie erhalten 3 .

Es wird daher empfohlen, Folgendes zu verwenden & für die Verkettung von Zeichenketten, da sie Mehrdeutigkeiten ausschließt.

43voto

Robert Harvey Punkte 173098

Der Operator + ist überladen, der Operator & hingegen nicht. Der Operator & führt nur die Verkettung von Zeichenfolgen durch. In einigen Kreisen wird der &-Operator als beste Praxis verwendet, weil er eindeutig ist und daher keine unbeabsichtigten Auswirkungen durch die Überladung haben kann.

7voto

EFraim Punkte 12426

+ Operator kann nach hinten losgehen, wenn Zeichenketten als Zahlen interpretiert werden können. Wenn Sie keine bösen Überraschungen erleben wollen, verwenden Sie & zur Verkettung von Zeichenketten.

2voto

Neal Davis Punkte 618

In einigen Fällen löst das + eine Ausnahme aus, zum Beispiel die folgende:

Sub SimpleObject_FloatPropertyChanging(fvalue, cancel)
   'fvalue is a floating point number
   MsgBox "Received Event: " + fvalue
End Sub

Sie erhalten eine Ausnahme, wenn die COM-Objektquelle das Ereignis auslöst - Sie müssen einen der folgenden Schritte ausführen:

MsgBox "Received Event: " & fvalue

o

MsgBox "Received Event: " + CStr(fvalue)

In beiden Fällen kann es am besten sein, die CStr(value) aber die Verwendung von & gemäß den obigen Kommentaren für die String-Verkettung ist fast immer die beste Praxis.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X