Compartilhar via


+ 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

or

+expression1  

Partes

Prazo 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.

Resultado

Se expression1 e expression2 ambos forem numéricos, o resultado será sua soma aritmética.

Se expression2 estiver ausente, o + operador será o operador de identidade unário para o valor inalterado de uma expressão. Nesse sentido, a operação consiste em manter o sinal de expression1, portanto, o resultado será negativo se expression1 for negativo.

Se expression1 e expression2 são ambas cadeias de caracteres, 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 Instrução Opção Estrita. Para obter mais informações, consulte as tabelas em "Comentários".

Tipos Suportados

Todos os tipos numéricos, incluindo os tipos de ponto flutuante e sem sinal, e DecimalString.

Observações

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

Se nenhuma das expressões for uma 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, Short, UShort, Integer, UInteger, Long, ULong, Decimal, , Single, ou 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 de Inteiros" 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érico e a outra é uma cadeia de caracteres Se Option Strict estiver On, gere um erro do compilador.

Se Option Strict estiver Off, converta implicitamente e StringDouble adicione.

Se não String for possível converter, Doublegere uma exceção InvalidCastException .
Uma expressão é um tipo de dados numérico 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 "".

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

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

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

Se Option Strict estiver Off, converta implicitamente e StringDouble adicione.

Se não String for possível converter, Doublegere uma exceção InvalidCastException .
Object expressão contém uma cadeia de caracteres e a outra é um tipo de dados numérico Se Option Strict estiver On, gere um erro do compilador.

Se Option Strict estiver Off, converta implicitamente a cadeia de caracteres ObjectDouble e adicione.

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

Se Option Strict estiver Off, converta ObjectString e concatene implicitamente.

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 Converta implicitamente a cadeia de caracteres ObjectDouble e adicione.

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

Se uma Object das expressões for avaliada como Nothing ou DBNull, o operador a + tratará como um String valor de "".

Observação

Ao usar o + operador, talvez você não consiga 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 ser 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 código usar esse operador em tal classe ou estrutura, certifique-se de entender seu comportamento redefinido. Para obter mais informações, consulte Procedimentos de Operador.

Exemplo

O exemplo a seguir usa o + operador para adicionar números. Se os operandos forem 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 cadeias de caracteres, o Visual Basic concatená-los. 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 Opção Estrita. 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 + concatenação.

Consulte também