+ (Operador, Visual Basic)

Agrega 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 unaria para el valor sin cambios de una expresión. En este sentido, la operación consiste en conservar el signo de , por lo que el expression1 resultado es negativo si es expression1 negativo.

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

Si expression1 y son de tipos mixtos, la acción realizada depende de sus tipos, su contenido y la configuración de expression2 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 .

Comentarios

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

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

Tipos de datos de expresiones Acción por compilador
Ambas expresiones son tipos de datos numéricos ( SByte , , , , , , , Byte , o Short UShort Integer UInteger Long ULong Decimal Single Double ) Agregar. El tipo de datos de resultado es un tipo numérico adecuado para los tipos de datos expression1 de y expression2 . Vea las tablas "Aritmética de enteros" en Tipos de datos de resultados del 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 , genere un error del On compilador.

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

Si no String se puede convertir en , se produce una Double InvalidCastException excepción.
Una expresión es un tipo de datos numérico y la otra es Nothing. Agregue , con Nothing valores como cero.
Una expresión es una cadena y la otra es Nothing Concatenar, con Nothing valores como "".

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

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

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

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

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

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

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

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

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

Tipos de datos de expresiones Acción por 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, inicia una InvalidCastException excepción.

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

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 con el objeto de eliminar & la ambigüedad y proporcionar código auto documentando.

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 este tipo de clase o estructura, 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 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 los concatena. El resultado de la concatenación representa una sola cadena 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 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.

Consulta también