Was ist der Unterschied zwischen VBScript + und & Operator?
-
05-07-2019 - |
Frage
Auf jeder Website, die über VBScript spricht, der ‚&
‘ Operator wird als String-Verkettung Operator aufgelistet. Doch in einigen Code, den ich vor kurzem geerbt haben, sehe ich die ‚+
‘ Operator verwendet wird, und ich bin keine Fehler als Folge davon zu sehen. Ist dies eine akzeptierte Alternative?
Lösung
Der Operator + überlastet ist, während der Operator & nicht. Der Operator & tut nur String-Verkettung. In manchen Kreisen wird der & Operator als beste Praxis verwendet, weil es eindeutig ist und daher keine unbeabsichtigten Auswirkungen als Folge der Überlastung haben kann.
Andere Tipps
Der &
Operator tut String-Verkettung, das heißt, zwingt Operanden in Zeichenketten umgewandelt werden (wie CStr
rief sie auf, zuerst). +
, der wiederum zwingt zusätzlich, wenn einer der Ausdrücke numerisch ist. Zum Beispiel:
1 & 2
geben Sie 12
, während
1 + 2
"1" + 2
1 + "2"
geben Sie 3
.
Also, es wird empfohlen, &
für String-Verkettung zu verwenden, da es Unklarheiten beseitigt.
+
Operator könnte nach hinten losgehen, wenn Strings können als Zahlen interpretiert werden. Wenn Sie nicht wollen, böse Überraschungen verwenden & Strings verketten.
In einigen Fällen ist die + eine Ausnahme werfen; zum Beispiel folgende Möglichkeiten:
Sub SimpleObject_FloatPropertyChanging(fvalue, cancel)
'fvalue is a floating point number
MsgBox "Received Event: " + fvalue
End Sub
Sie erhalten eine Ausnahme erhalten, wenn das COM-Objekt Quelle das Ereignis ausgelöst wird - Sie eine der folgenden tun müssen:
MsgBox "Received Event: " & fvalue
oder
MsgBox "Received Event: " + CStr(fvalue)
Es kann sein, in jedem Fall am besten CStr(value)
zu verwenden; aber & pro obigen Ausführungen für die String-Verkettung verwendet, ist fast immer am beste Praxis.