Operador + (Visual Basic)

Adds two numbers or returns the positive value of a numeric expression. Can also be used to concatenate two string expressions.

expression1 + expression2
- or -
+ expression1

Parts

Term

Definition

expression1

Required. Any numeric or string expression.

expression2

Required unless the + operator is calculating a negative value. Any numeric or string expression.

Result

If expression1 and expression2 are both numeric, the result is their arithmetic sum.

If expression2 is absent, the + operator is the unary identity operator for the unchanged value of an expression. In this sense, the operation consists of retaining the sign of expression1, so the result is negative if expression1 is negative.

If expression1 and expression2 are both strings, the result is the concatenation of their values.

If expression1 and expression2 are of mixed types, the action taken depends on their types, their contents, and the setting of the Opção declaração estrito. For more information, see the tables in "Remarks."

Supported Types

All numeric types, including the unsigned and floating-point types and Decimal, and String.

Comentários

In general, + performs arithmetic addition when possible, and concatenates only when both expressions are strings.

If neither expression is an Object, Visual Basic takes the following actions.

Data types of expressions

Action by compiler

Both expressions are numeric data types (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong, Decimal, Single, or Double)

Add. O tipo de dados de resultado é um tipo numérico apropriado para os tipos de dados de expression1 e expression2. See the "Integer Arithmetic" tables in Tipos de dados de resultados de operador (Visual Basic).

Both expressions are of type String

Concatenate.

One expression is a numeric data type and the other is a string

If Option Strict is On, then generate a compiler error.

If Option Strict is Off, then implicitly convert the String to Double and add.

If the String cannot be converted to Double, then throw an InvalidCastException exception.

One expression is a numeric data type, and the other is Nada (Visual Basic)

Add, with Nothing valued as zero.

One expression is a string, and the other is Nothing

Concatenate, with Nothing valued as "".

If one expression is an Object expression, Visual Basic takes the following actions.

Data types of expressions

Action by compiler

Object expression holds a numeric value and the other is a numeric data type

If Option Strict is On, then generate a compiler error.

If Option Strict is Off, then add.

Objectexpressão contém um valor numérico e a outra é do tipoString

If Option Strict is On, then generate a compiler error.

If Option Strict is Off, then implicitly convert the String to Double and add.

If the String cannot be converted to Double, then throw an InvalidCastException exception.

Object expression holds a string and the other is a numeric data type

If Option Strict is On, then generate a compiler error.

If Option Strict is Off, then implicitly convert the string Object to Double and add.

If the string Object cannot be converted to Double, then throw an InvalidCastException exception.

Objectexpressão contém uma seqüência de caracteres e a outra é do tipoString

If Option Strict is On, then generate a compiler error.

If Option Strict is Off, then implicitly convert Object to String and concatenate.

If both expressions are Object expressions, Visual Basic takes the following actions (Option Strict Off only).

Data types of expressions

Action by compiler

Both Object expressions hold numeric values

Add.

Both Object expressions are of type String

Concatenate.

One Object expression holds a numeric value and the other holds a string

Implicitly convert the string Object to Double and add.

If the string Object cannot be converted to a numeric value, then throw an InvalidCastException exception.

If either Object expression evaluates to Nothing or DBNull, the + operator treats it as a String with a value of "".

ObservaçãoObservação

When you use the + operator, you might not be able to determine whether addition or string concatenation will occur. Use the & operator for concatenation to eliminate ambiguity and to provide self-documenting code.

Overloading

The + operator can be overloaded, which means that a class or structure can redefine its behavior when an operand has the type of that class or structure. If your code uses this operator on such a class or structure, be sure you understand its redefined behavior. For more information, see Procedimentos de operador (Visual Basic).

Exemplo

The following example uses the + operator to add numbers. If the operands are both numeric, Visual Basic computes the arithmetic result. The arithmetic result represents the sum of the two operands.

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

You can also use the + operator to concatenate strings. If the operands are both strings, Visual Basic concatenates them. The concatenation result represents a single string consisting of the contents of the two operands one after the other.

If the operands are of mixed types, the result depends on the setting of the Opção declaração estrito. The following example illustrates the result when Option Strict is 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. 

The following example illustrates the result when Option Strict is 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.

To eliminate ambiguity, you should use the & operator instead of + for concatenation.

Consulte também

Referência

Operador & (Visual Basic)

Operadores de concatenação (Visual Basic)

Operadores Aritméticos (Visual Basic)

Operadores listados por Funcionalidade (Visual Basic)

Precedência de operadores no Visual Basic

Opção declaração estrito

Conceitos

Operadores aritméticos em Visual Basic