+ (Operador, Visual Basic)
Suma dos números o devuelve el valor positivo de una expresión numérica. También se puede usar 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 numéricos, el resultado es su suma aritmética.
Si expression2
está ausente, el operador +
es el operador de identidad unario para el valor no modificado de una expresión. En este sentido, la operación consta de conservar el signo de expression1
, por lo que el resultado es negativo si expression1
es negativo.
Si expression1
y expression2
son cadenas, el resultado es la concatenación de sus valores.
Si expression1
y expression2
son de tipos mixtos, la acción realizada depende de sus tipos, su contenido y la configuración de la instrucción Option Strict. Para más información, consulte las tablas en "Comentarios".
Tipos admitidos
Todos los tipos numéricos, incluidos los tipos sin signo y los de punto flotante y Decimal
, y String
.
Comentarios
En general, +
realiza la suma aritmética siempre que sea posible y concatena solo cuando ambas expresiones son cadenas.
Si ninguna expresión es Object
, Visual Basic toma las acciones siguientes.
Tipos de datos de expresiones | Acción por 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 de resultado es un tipo numérico adecuado para los tipos de datos de expression1 y expression2 . Consulte las tablas "Aritmética de enteros" en Tipos de datos de resultados de operador. |
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 , generar un error de compilador.Si Option Strict es Off , convertir implícitamente String en Double y sumar.Si String no se puede convertir en Double , arrojar una excepción InvalidCastException. |
Una expresión es un tipo de datos numérico y la otra es Nothing | Sumar, con Nothing con cero como valor. |
Una expresión es una cadena y la otra es Nothing |
Concatenar, con Nothing con "" como valor. |
Si una expresión es una expresión Object
, Visual Basic toma las acciones siguientes.
Tipos de datos de expresiones | Acción por compilador |
---|---|
La expresión Object contiene un valor numérico y la otra es un tipo de datos numérico |
Si Option Strict es On , generar un error de compilador.Si Option Strict es Off , sumar. |
La expresión Object contiene un valor numérico y la otra es de tipo String |
Si Option Strict es On , generar un error de compilador.Si Option Strict es Off , convertir implícitamente String en Double y sumar.Si String no se puede convertir en Double , arrojar una excepción InvalidCastException. |
La expresión Object contiene una cadena y la otra es un tipo de datos numérico |
Si Option Strict es On , generar un error de compilador.Si Option Strict es Off , convertir implícitamente la cadena Object en Double y sumar.Si la cadena Object no se puede convertir en Double , arrojar una excepción InvalidCastException. |
La expresión Object contiene una cadena y la otra es de tipo String |
Si Option Strict es On , generar un error de compilador.Si Option Strict es Off , convertir implícitamente Object en String y concatenar. |
Si ambas expresiones son expresiones Object
, Visual Basic toma las acciones siguientes (solo Option Strict Off
).
Tipos de datos de expresiones | Acción por compilador |
---|---|
Ambas expresiones Object contienen valores numéricos |
Agregar. |
Ambas expresiones Object son de tipo String |
Concatenar. |
Una expresión Object contiene un valor numérico y la otra contiene una cadena |
Convertir implícitamente la cadena Object en Double y sumar.Si la cadena Object no se puede convertir en un valor numérico, arrojar una excepción InvalidCastException. |
Si cualquiera de las expresiones Object
se evalúa como Nothing o DBNull, el operador +
la considera como String
con un valor de "".
Nota
Al usar el operador +
, es posible que no pueda determinar si se producirá la suma o la concatenación de cadenas. Use el operador &
para la concatenación para eliminar la ambigüedad y para proporcionar código autodocumentado.
Sobrecarga
El operador +
puede sobrecargarse, lo que significa que una clase o estructura puede redefinir 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 que comprende su comportamiento redefinido. Para obtener más información, consulta Operator Procedures.
Ejemplo
En el ejemplo siguiente, se usa el operador +
para sumar 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 ambos operados son cadenas, Visual Basic los concatena. El resultado de la concatenación representa una cadena única que consta del contenido de los dos operandos, uno después del 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 ilustra 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 ilustra 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.