strings - Ampersand vs plus para concatenar cadenas en VB.NET
vb net concat string and integer (5)
Es más seguro de utilizar y ya que está haciendo que su intención sea clara para el compilador (quiero concatenar estos dos valores y ambos deben convertirse en cadenas).
Usar + puede llevar a errores difíciles de encontrar si las cadenas son valores numéricos, al menos si la opción estricta está desactivada.
Por ejemplo:
1 + "1" = 2 '' this fails if option strict is on
1 & "1" = 11
Editar: aunque si estás concatenando un hilo que no sea una cuerda, probablemente deberías usar algún método mejor.
Esta pregunta ya tiene una respuesta aquí:
- Manipulación de cadenas con & o + en VB.NET 6 respuestas
En VB.NET, ¿hay alguna ventaja al usar &
para concatenar cadenas en lugar de +
?
Por ejemplo
Dim x as String = "hello" + " there"
vs.
Dim x as String = "hello" & " there"
Sí, sé que para muchas concatenaciones de cadenas me gustaría usar StringBuilder
, pero esta es más una pregunta general.
Escuché buenos y sólidos argumentos a favor de ambos operadores. Qué argumento gana el día depende en gran medida de su situación. Lo único que puedo decir es que debes estandarizar en uno u otro. El código que mezcla los dos está pidiendo confusión más tarde.
Los dos argumentos que recuerdo ahora para favorecer a &:
- Si no está utilizando
Option Strict
y tiene dos cadenas numéricas, es fácil para el compilador confundir su significado del operador+
con, ya sabe, la suma aritmética - Si está actualizando una gran cantidad de código anterior de la era vb6, ayuda a no tener que convertir los operadores de concatenación (y recuerde: queremos consistencia).
Y para +:
- Si tiene un taller mixto vb / C #, es bueno tener solo un operador de concatenación. Hace que sea más fácil mover el código entre los idiomas y significa mucho menos un cambio de contexto para los programadores cuando se mueven hacia adelante y hacia atrás entre los idiomas.
- & es casi exclusivo de VB, mientras que + entre cadenas se entiende en muchos idiomas como concatenación, por lo que obtienes un poco de legibilidad.
La preference de Micorosoft es que los programadores de VB usen & para cadenas, NOT +.
También puede usar el operador + para concatenar cadenas. Sin embargo, para eliminar la ambigüedad, debe usar el operador & en su lugar.
Prefiero usar &
para concatenaciones de cadenas en VB.NET
Una razón para esto es evitar cualquier confusión, por ejemplo
MessageBox.Show(1 & 2) '' "12"
MessageBox.Show(1 + 2) '' 3
Supongo que es histórico (no .NET Visual Basic usa &, no estoy seguro de por qué introdujeron el +) y una cuestión de gusto (prefiero y porque concatenamos cadenas, no las agregamos ...).