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órios. 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
forem numéricos, o resultado será a 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 reter o sinal de expression1
, portanto, o resultado será negativo se expression1
for negativo.
Se expression1
e expression2
forem cadeias de caracteres, o resultado será a concatenação dos valores.
Se expression1
e expression2
forem de tipos mistos, a ação executada dependerá dos tipos, do conteúdo e da configuração da Instrução Option Strict. Para obter mais informações, confira as tabelas em "Comentários".
Tipos com suporte
Todos os tipos numéricos, incluindo os de ponto flutuante e sem sinal, Decimal
e String
.
Comentários
Em geral, +
executa a adição aritmética quando possível e concatena somente quando as duas expressões são cadeias de caracteres.
Se nenhuma das expressões for uma Object
, o Visual Basic executará as ações a seguir.
Tipos de dados de expressões | Ação por compilador |
---|---|
As duas 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 do resultado será um tipo numérico apropriado para os tipos de dados de expression1 e expression2 . Consulte as tabelas "Aritmética de inteiros" nos Tipos de dados de resultados do operador. |
As duas expressões são do tipo String |
Concatenate. |
Uma expressão é um tipo de dados numérico e a outra é uma cadeia de caracteres | Se Option Strict for On , gere um erro do compilador.Se Option Strict for Off , converta implicitamente o String em Double e adicione.Se não for possível converter o String em Double , gere uma exceção InvalidCastException. |
Uma expressão é um tipo de dados numérico e a outra é Nothing | Adicionar, com Nothing com valor de zero. |
Uma expressão é uma cadeia de caracteres, e a outra é Nothing |
Concatenar, com Nothing com valor de "". |
Se uma expressão for Object
, o Visual Basic executará as ações a seguir.
Tipos de dados de expressões | Ação por compilador |
---|---|
A expressão Object contém um valor numérico e a outra é um tipo de dados numérico |
Se Option Strict for On , gere um erro do compilador.Se Option Strict for Off , adicione. |
A expressão Object contém um valor numérico e a outra é do tipo String |
Se Option Strict for On , gere um erro do compilador.Se Option Strict for Off , converta implicitamente o String em Double e adicione.Se não for possível converter o String em Double , gere uma exceção InvalidCastException. |
A expressão Object contém uma cadeia de caracteres e a outra é um tipo de dados numérico |
Se Option Strict for On , gere um erro do compilador.Se Option Strict for Off , converta implicitamente a cadeia de caracteres Object em Double e adicione.Se não for possível converter a cadeia de caracteres Object em Double , gere uma exceção InvalidCastException. |
A expressão Object contém uma cadeia de caracteres e a outra é do tipo String |
Se Option Strict for On , gere um erro do compilador.Se Option Strict for Off , converta implicitamente Object em String e concatene. |
Se as duas expressões forem Object
, o Visual Basic executará as ações a seguir (somente Option Strict Off
).
Tipos de dados de expressões | Ação por compilador |
---|---|
As duas expressões Object contêm valores numéricos |
Adicionar. |
As duas expressões Object são d o tipo String |
Concatenate. |
Uma expressão Object contém um valor numérico e a outra contém uma cadeia de caracteres |
Converta implicitamente a cadeia de caracteres Object em Double e adicione.Se não for possível converter a cadeia de caracteres Object em um valor numérico, gere uma exceção InvalidCastException. |
Se uma das expressões Object
for avaliada como Nothing ou DBNull, o operador +
a tratará como um String
com 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 autodocumentaçã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 uma classe ou estrutura, certifique-se de entender seu comportamento redefinido. Para obter mais informações, confira 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 cadeias de caracteres, o Visual Basic os concatenará. 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
for 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
for 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.