+ (Operador, Visual Basic)

Suma dos números o devuelve el valor positivo de una expresión numérica. También se puede utilizar para concatenar dos expresiones de cadena.

Sintaxis

expression1 + expression2

o

+expression1  

Partes

Término Definición
expression1 Obligatorio. Cualquier expresión numérica o de cadena.
expression2 Obligatorio a menos que el + operador calcule un valor negativo. Cualquier expresión numérica o de cadena.

Resultado

Si expression1 y expression2 son ambos numéricos, el resultado es su suma aritmética.

Si expression2 no está presente, el + operador es el operador unario de identidad para el valor sin modificar de una expresión. En este sentido, la operación consiste en conservar el signo de expression1 , por lo que el resultado es negativo si expression1 es negativo.

Si expression1 y expression2 son ambas cadenas, el resultado es la concatenación de sus valores.

Si expression1 y expression2 son de tipos mixtos, la acción tomada depende de sus tipos, su contenido y la configuración de la instrucción Option Strict. Para obtener más información, vea las tablas de "Comentarios".

Tipos admitidos

Todos los tipos numéricos, incluidos los tipos de punto flotante y sin signo y Decimal , y String .

Observaciones

En general, + realiza la suma aritmética siempre que sea posible y concatena solo cuando ambas expresiones son cadenas.

Si ninguna Object de las expresiones es, Visual Basic realiza las acciones siguientes.

Tipos de datos de expresiones Acción por el compilador
Ambas expresiones son tipos de datos numéricos ( SByte , Byte , Short , UShort , Integer , UInteger , Long , ULong , Decimal , Single o Double ) Agregar. El tipo de datos del resultado es un tipo numérico adecuado para los tipos de datos de expression1 y expression2 . Vea las tablas "aritmética de enteros" en tipos de datos de resultados de operadores.
Ambas expresiones son de tipo String Concatenar.
Una expresión es un tipo de datos numérico y la otra es una cadena Si Option Strict es On , genere un error del compilador.

Si Option Strict es Off , convierta implícitamente el String en Double y agregue.

Si String no se puede convertir en Double , inicie una InvalidCastException excepción.
Una expresión es un tipo de datos numérico y la otra no es nada Agregue, con un Nothing valor igual a cero.
Una expresión es una cadena y la otra es Nothing Concatenate, con el Nothing valor "".

Si una expresión es una Object expresión, Visual Basic realiza las siguientes acciones.

Tipos de datos de expresiones Acción por el compilador
Object la expresión contiene un valor numérico y la otra es un tipo de datos numérico Si Option Strict es On , genere un error del compilador.

Si Option Strict es Off , agregue.
Object la expresión contiene un valor numérico y el otro es de tipo String Si Option Strict es On , genere un error del compilador.

Si Option Strict es Off , convierta implícitamente el String en Double y agregue.

Si String no se puede convertir en Double , inicie una InvalidCastException excepción.
Object la expresión contiene una cadena y la otra es un tipo de datos numérico Si Option Strict es On , genere un error del compilador.

Si Option Strict es Off , convierta implícitamente la cadena Object en Double y agregue.

Si la cadena Object no se puede convertir en Double , inicie una InvalidCastException excepción.
Object la expresión contiene una cadena y la otra es de tipo String Si Option Strict es On , genere un error del compilador.

Si Option Strict es Off , convierta implícitamente Object en String y concatene.

Si ambas expresiones son Object expresiones, Visual Basic toma las siguientes acciones ( Option Strict Off solo).

Tipos de datos de expresiones Acción por el compilador
Ambas Object expresiones contienen valores numéricos Agregar.
Ambas Object expresiones son de tipo String Concatenar.
Una Object expresión contiene un valor numérico y la otra contiene una cadena Convierta implícitamente la cadena Object en Double y agregue.

Si la cadena Object no se puede convertir en un valor numérico, inicie una InvalidCastException excepción.

Si alguna de las Object expresiones se evalúa como Nothing o DBNull , el + operador la trata como un String con un valor de "".

Nota

Al utilizar el + operador, es posible que no pueda determinar si se producirá la concatenación de cadenas o la suma. Utilice el & operador para la concatenación para eliminar la ambigüedad y proporcionar código autodocumentado.

Sobrecarga

El + operador se puede sobrecargar, lo que significa que una clase o estructura puede volver a definir su comportamiento cuando un operando tiene el tipo de esa clase o estructura. Si el código usa este operador en una clase o estructura de este tipo, asegúrese de entender su comportamiento redefinido. Para obtener más información, consulta Operator Procedures.

Ejemplo

En el ejemplo siguiente se usa el + operador para agregar números. Si los operandos son numéricos, Visual Basic calcula el resultado aritmético. El resultado aritmético representa la suma de los dos operandos.

Dim sumNumber As Integer
sumNumber = 2 + 2
sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.

También puede usar el + operador para concatenar cadenas. Si los operandos son ambas cadenas, Visual Basic las concatena. El resultado de la concatenación representa una sola cadena formada por el contenido de los dos operandos uno tras otro.

Si los operandos son de tipos mixtos, el resultado depende de la configuración de la instrucción Option Strict. En el ejemplo siguiente se muestra el resultado cuando Option Strict es On .

Option Strict On
Dim var1 As String = "34"
Dim var2 As Integer = 6
Dim concatenatedNumber As Integer = var1 + var2
' The preceding statement generates a COMPILER ERROR. 

En el ejemplo siguiente se muestra el resultado cuando Option Strict es Off .

Option Strict Off
Dim var1 As String = "34"
Dim var2 As Integer = 6
Dim concatenatedNumber As Integer = var1 + var2
' The preceding statement returns 40 after the string in var1 is
' converted to a numeric value. This might be an unexpected result.
' We do not recommend use of Option Strict Off for these operations.

Para eliminar la ambigüedad, debe usar el & operador en lugar de + para la concatenación.

Vea también