+ Operador (Visual Basic)

Adiciona dois números ou retorna o valor positivo de uma expressão numérica. Também pode ser usado para concatenar duas expressões de cadeia de caracteres.

Sintaxe

expression1 + expression2

ou

+expression1  

Partes

Termo Definição
expression1 Obrigatório. Qualquer expressão numérica ou de cadeia de caracteres.
expression2 Obrigatório, a menos que o + operador esteja calculando um valor negativo. Qualquer expressão numérica ou de cadeia de caracteres.

Result

Se expression1 e expression2 são ambos numéricos, o resultado é a sua soma aritmética.

Se expression2 estiver ausente, o + operador é o operador de identidade unária para o valor inalterado de uma expressão. Neste sentido, a operação consiste em reter o sinal de expression1, pelo que o resultado é negativo se expression1 for negativo.

Se expression1 e expression2 são ambas as cordas, o resultado é a concatenação de seus valores.

Se expression1 e expression2 são de tipos mistos, a ação tomada depende de seus tipos, seu conteúdo e a configuração da Declaração Estrita de Opção. Para obter mais informações, consulte as tabelas em "Observações".

Tipos suportados

Todos os tipos numéricos, incluindo os tipos não assinados e de vírgula flutuante e Decimal, e String.

Observações

Em geral, + executa a adição aritmética quando possível e concatena apenas quando ambas as expressões são strings.

Se nenhuma das expressões for um Object, o Visual Basic executará as seguintes ações.

Tipos de dados de expressões Ação por compilador
Ambas as expressões são tipos de dados numéricos (SByte, Byte, , ShortUShort, Integer, UInteger, Long, SingleULongDecimalou Double) Adicionar. O tipo de dados de resultado é um tipo numérico apropriado para os tipos de dados de expression1 e expression2. Consulte as tabelas "Aritmética Inteira" em Tipos de Dados de Resultados do Operador.
Ambas as expressões são do tipo String Concatenar.
Uma expressão é um tipo de dados numéricos e a outra é uma cadeia de caracteres Se Option Strict for On, gere um erro de compilador.

Se Option Strict for Off, então implicitamente converta o String para Double e adicione.

Se o String não puder ser convertido em Double, lance uma InvalidCastException exceção.
Uma expressão é um tipo de dados numéricos e a outra é Nothing Adicione, com Nothing valor como zero.
Uma expressão é uma cadeia de caracteres e a outra é Nothing Concatenar, com Nothing valor como "".

Se uma expressão for uma Object expressão, o Visual Basic executará as seguintes ações.

Tipos de dados de expressões Ação por compilador
Object expression contém um valor numérico e o outro é um tipo de dados numérico Se Option Strict for On, gere um erro de compilador.

Se Option Strict for Off, então adicione.
Object expressão contém um valor numérico e o outro é do tipo String Se Option Strict for On, gere um erro de compilador.

Se Option Strict for Off, então implicitamente converta o String para Double e adicione.

Se o String não puder ser convertido em Double, lance uma InvalidCastException exceção.
Object expression contém uma cadeia de caracteres e a outra é um tipo de dados numéricos Se Option Strict for On, gere um erro de compilador.

Se Option Strict for Off, então implicitamente converta a cadeia de caracteres Object em Double e adicione.

Se a cadeia de caracteres Object não puder ser convertida em Double, lance uma InvalidCastException exceção.
Object expressão contém uma cadeia de caracteres e a outra é do tipo String Se Option Strict for On, gere um erro de compilador.

Se Option Strict é Off, então implicitamente converta Object e String concatene.

Se ambas as expressões forem Object expressões, o Visual Basic executará as seguintes ações (Option Strict Off somente ).

Tipos de dados de expressões Ação por compilador
Ambas as Object expressões contêm valores numéricos Adicionar.
Ambas as Object expressões são do tipo String Concatenar.
Uma Object expressão contém um valor numérico e a outra contém uma cadeia de caracteres Implicitamente converter a cadeia de caracteres Object para Double e adicionar.

Se a cadeia de caracteres Object não puder ser convertida em um valor numérico, lance uma InvalidCastException exceção.

Se qualquer expressão Object for avaliada como Nothing ou DBNull, o + operador a tratará como um String com um valor de "".

Nota

Ao usar o + operador, talvez não seja possível determinar se a concatenação de adição ou cadeia de caracteres ocorrerá. Use o operador para concatenação para eliminar a & ambiguidade e fornecer código de auto-documentação.

Sobrecarga

O + operador pode estar sobrecarregado, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo dessa classe ou estrutura. Se o seu código usa esse operador em tal classe ou estrutura, certifique-se de entender seu comportamento redefinido. Para obter mais informações, consulte Procedimentos do operador.

Exemplo

O exemplo a seguir usa o + operador para adicionar números. Se os operandos forem ambos numéricos, o Visual Basic calculará o resultado aritmético. O resultado aritmético representa a soma dos dois operandos.

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

Você também pode usar o + operador para concatenar cadeias de caracteres. Se os operandos forem ambas as cadeias de caracteres, o Visual Basic os concatena. O resultado da concatenação representa uma única cadeia de caracteres que consiste no conteúdo dos dois operandos, um após o outro.

Se os operandos forem de tipos mistos, o resultado dependerá da configuração da instrução Option Strict. O exemplo a seguir ilustra o resultado quando Option Strict é 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. 

O exemplo a seguir ilustra o resultado quando Option Strict é 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 a ambiguidade, você deve usar o & operador em vez de + para concatenação.

Consulte também