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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top