Question

Sur chaque site qui parle de VBScript, l'opérateur ' & amp; ' est répertorié en tant qu'opérateur de concaténation de chaînes. Cependant, dans certains codes dont j'ai récemment hérité, l'opérateur " + " est utilisé et je ne vois aucune erreur en conséquence. Est-ce une alternative acceptée?

Était-ce utile?

La solution

L'opérateur + est surchargé, alors que le & amp; l'opérateur n'est pas. Le & amp; l'opérateur ne fait que la concaténation de chaînes. Dans certains milieux, le & amp; L’opérateur est utilisé comme pratique recommandée car il est dépourvu d’ambiguïté et ne peut donc avoir d’effets inattendus en raison de la surcharge.

Autres conseils

L'opérateur & amp; effectue la concaténation de chaînes, c'est-à-dire qu'il force les opérandes à être convertis en chaînes (comme appeler d'abord CStr ). + , à son tour, force l'ajout si l'une des expressions est numérique. Par exemple:

1 & 2

vous donne 12 , alors que

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

vous donner 3 .

Il est donc recommandé d'utiliser & amp; pour la concaténation de chaînes, car elle élimine les ambiguïtés.

L'opérateur

+ peut se retourner contre lui lorsque les chaînes peuvent être interprétées comme des nombres. Si vous ne voulez pas de mauvaises surprises, utilisez & amp; concaténer des chaînes.

Dans certains cas, le + lève une exception. Par exemple:

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

Vous obtiendrez une exception lorsque la source de l'objet COM déclenchera l'événement. Vous devez alors effectuer l'une des opérations suivantes:

MsgBox "Received Event: " & fvalue

ou

MsgBox "Received Event: " + CStr(fvalue)

Dans les deux cas, il peut être préférable d’utiliser CStr (valeur) ; mais en utilisant & amp; Les commentaires ci-dessus pour la concaténation de chaînes sont presque toujours les meilleures pratiques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top