2010-07-29 50 views

Respuesta

4

Las expresiones son las mismas siempre que los operandos sean cadenas; si no, + podría agregarlos en su lugar dependiendo de las conversiones de tipo. & garantiza que no obtendrá nada excepto una concatenación de cadenas, y convertirá los operandos a cadenas si es posible para hacerlo.

Hay una entrada de MSDN sobre Concatenation operations in Visual Basic que lo explica:

El & operador (Visual Basic) se define solamente para operandos de cadena, y siempre se ensancha sus operandos de cadena, independientemente de la configuración de la opción Estricto . El operador & se recomienda para la concatenación de cadenas porque está definido exclusivamente para cadenas y reduce las posibilidades de que genere una conversión involuntaria.

+3

Las expresiones no son las mismas incluso con cadenas si uno de los valores es nulo. – Fionnuala

+0

El artículo de MSDN trata sobre Visual Basic, pero supongo que esto también funciona en VBA. No hay una página de documentación de VBA o no? –

2

Las dos expresiones son equivalentes, pero los operadores no lo son. + se puede utilizar como un operador aritmético, así como para la concatenación de cadenas, & solo se puede utilizar para este último.

+0

bien entonces ¿por qué tener & en absoluto? –

+0

Tienen un comportamiento diferente, vea ['+' operator] (http://msdn.microsoft.com/en-us/library/9c5t70w2%28v=VS.80%29.aspx) vs. ['&' operator] (http://msdn.microsoft.com/en-us/library/wfx50zyk%28v=VS.80%29.aspx). –

+0

Considere un valor nulo concatenado con una cadena usando + – Fionnuala