+ (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.
expression1 + expression2
- or -
+ expression1
Partes
Término |
Definición |
expression1 |
Obligatorio. Cualquier expresión numérica o de cadena. |
expression2 |
Obligatorio a menos que el operador + esté calculando 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 está ausente, el operador + es el operador de identidad unario para el valor sin modificar de una expresión. En este sentido, la operación trata de 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 realizada depende de sus tipos, su contenido y la configuración de Option Strict (Instrucción). Para obtener más información, vea las tablas en "Comentarios".
Tipos admitidos
Todos los tipos numéricos, incluidos los tipos de punto flotante y sin signo, Decimal y String.
Comentarios
En general, + realiza la suma aritmética cuando es posible y sólo concatena cuando ambas expresiones son cadenas.
Si ninguna de las expresiones es Object, Visual Basic realiza las acciones siguientes.
Tipos de datos de expresiones |
Acción del compilador |
Ambas expresiones son tipos de datos numéricos (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong, Decimal, Single o Double) |
Deberá agregar. El tipo de datos resultante 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 operador (Visual Basic). |
Ambas expresiones son de tipo String |
Deberá concatenar. |
Una expresión es numérica y la otra es una cadena |
Si Option Strict es On, generar un error del compilador. Si Option Strict es Off, convertir implícitamente String en Double y sumar. Si String no puede convertirse en Double, producir una excepción InvalidCastException. |
Una expresión es numérica y la otra es Nothing (Visual Basic) |
Sumar, con Nothing evaluado como cero. |
Una expresión es una cadena y la otra es Nothing |
Concatenar, con Nothing evaluado como " ". |
Si una de las expresiones es Object, Visual Basic realiza las acciones siguientes.
Tipos de datos de expresiones |
Acción del compilador |
Object expresión que contiene un valor numérico y la otra es un tipo de datos numérico |
Si Option Strict es On, generar un error del compilador. Si Option Strict es Off, sumar. |
La expresión de Object contiene un valor numérico y la otra es de tipo String |
Si Option Strict es On, generar un error del compilador. Si Option Strict es Off, convertir implícitamente String en Double y sumar. Si String no puede convertirse en Double, producir una excepción InvalidCastException. |
Object expresión que contiene una cadena y la otra es un tipo de datos numérico |
Si Option Strict es On, generar un error del compilador. Si Option Strict es Off, convertir implícitamente la cadena Object en Double y sumar. Si la cadena Object no puede convertirse en Double, producir una excepción InvalidCastException. |
La expresión de Object contiene una cadena y la otra es de tipo String |
Si Option Strict es On, generar un error del compilador. Si Option Strict es Off, convertir implícitamente Object en String y concatenar. |
Si ambas son expresiones Object, Visual Basic realiza las acciones siguientes (sólo Option Strict Off).
Tipos de datos de expresiones |
Acción del compilador |
Ambas expresiones Object contienen valores numéricos |
Deberá agregar. |
Ambas expresiones Object son de tipo String |
Deberá concatenar. |
Una expresión Object contiene un valor numérico y la otra, una cadena |
Convertir implícitamente la cadena Object en Double y sumar. Si la cadena Object no puede convertirse en un valor numérico, producir una excepción InvalidCastException. |
Si una de las expresiones Object se evalúa como Nothing o DBNull, el operador + la trata como String con un valor de " ".
Nota
Cuando utilice el operador +, puede que no logre determinar si se producirá una suma o bien una concatenación de cadenas. Use el operador & de concatenación para eliminar ambigüedades y ofrecer código autoexplicativo.
Sobrecarga
El operador + se puede sobrecargar, lo que significa que una clase o una estructura pueden definir de nuevo su comportamiento cuando un operando tiene el tipo de dicha clase o estructura. Si el código utiliza este operador en una clase o estructura de este tipo, asegúrese de conocer su comportamiento redefinido. Para obtener más información, vea Procedimientos de operador (Visual Basic).
Ejemplo
En el ejemplo siguiente se usa el operador + para sumar números. Si los operandos son ambos numéricos, Visual Basic calcula el resultado aritmético. El resultado aritmético representa la suma de ambos operandos.
Dim sumNumber As Integer
sumNumber = 2 + 2
sumNumber = 4257.04 + 98112
' The preceding statements set sumNumber to 4 and 102369.
El operador + también puede utilizarse para concatenar cadenas. Si los operandos son ambos cadenas, Visual Basic los concatena. El resultado de la concatenación representa una cadena única que consta del contenido de los dos operandos uno tras otro.
Si los operandos son de tipos mixtos, el resultado depende de la configuración de Option Strict (Instrucción). El ejemplo siguiente 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.
El ejemplo siguiente 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, debería utilizar al operador & en lugar de + para la concatenación.
Vea también
Referencia
Operadores de concatenación (Visual Basic)
Operadores aritméticos (Visual Basic)
Operadores enumerados por funcionalidad (Visual Basic)
Prioridad de operador en Visual Basic