Pregunta

En cada sitio que habla sobre VBScript, el operador ' & amp; ' aparece como el operador de concatenación de cadenas. Sin embargo, en algún código que he heredado recientemente, veo que se está utilizando el operador ' + ' y no veo ningún error como resultado de esto. ¿Es esta una alternativa aceptada?

¿Fue útil?

Solución

El operador + está sobrecargado, mientras que el operador & amp; el operador no lo es El & amp; El operador solo hace la concatenación de cadenas. En algunos círculos, el & amp; El operador se utiliza como una mejor práctica porque no es ambiguo y, por lo tanto, no puede tener ningún efecto no deseado como resultado de la sobrecarga.

Otros consejos

El operador & amp; realiza la concatenación de cadenas, es decir, obliga a los operandos a convertirse en cadenas (como llamar primero a CStr ). + , a su vez, fuerza la adición si una de las expresiones es numérica. Por ejemplo:

1 & 2

te da 12 , mientras que

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

te da 3 .

Por lo tanto, se recomienda usar & amp; para la concatenación de cadenas, ya que elimina la ambigüedad.

El operador

+ puede ser contraproducente cuando las cadenas pueden interpretarse como números. Si no quieres sorpresas desagradables usa & amp; para concatenar cadenas.

En algunos casos, el + lanzará una excepción; por ejemplo lo siguiente:

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

Obtendrá una excepción cuando el origen del objeto COM desencadene el evento; debe hacer una de las siguientes acciones:

MsgBox "Received Event: " & fvalue

o

MsgBox "Received Event: " + CStr(fvalue)

Puede ser mejor en cualquier caso usar CStr (value) ; pero utilizando & amp; según los comentarios anteriores para la concatenación de cadenas es casi siempre la mejor práctica.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top