Operador + (Visual Basic)
Adiciona dois números ou retorna o valor positivo de um expressão numérica. Também pode ser usado para concatenar duas expressões de string.
expression1 + expression2
- or -
+ expression1
Partes
Termo |
Definição |
expression1 |
Obrigatório. Qualquer expressão numérica ou string. |
expression2 |
Necessária a menos que o operador + esteja calculando um valor negativo. Qualquer expressão numérica ou string. |
Resultado
Se expression1 e expression2 forem numéricos, o resultado é sua soma aritmética.
Se expression2 estiver ausente, o operador + é 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 é negativo se expression1 for negativo.
Se expression1 e expression2 são ambas strings, o resultado é a concatenação de seus valores.
Se expression1 e expression2 são de tipos mistos, a ação tomada depende seus tipos, seu conteúdo e a configuração de Instrução Option Strict. Para obter mais informações, consulte as tabelas em "Comentários".
Os tipos suportados
Todos os tipos numéricos, incluindo os tipos unsigned e ponto-flutuante e Decimal e String.
Comentários
Em geral, + executa adição aritmética quando possível e concatena somente quando as duas expressões são strings.
Se nenhuma expressão for um Object, Visual Basic toma as seguintes medidas.
Tipos de dados de expressões |
Ação pelo compilador |
As duas expressões são tipos de dados numéricos (SByte, Byte,Short, UShort,Integer,UInteger,Long,ULong, Decimal,Single,ou Double) |
Somar O tipo de dados do resultado é um tipo numérico apropriado para os tipos de dados de expression1 e expression2. Veja as tabelas de "Aritmética de Inteiros" em Tipos de dados de resultados do operador (Visual Basic) |
As duas expressões são do tipo String |
Concatenar. |
Uma expressão é um tipo de dados numéricos e a outra é uma string. |
Se Option Strict estiver On, então é gerado um erro do compilador. Se Option Strict é Off, então implicitamente converta o String Double e adicione. Se a String não pode ser convertida para Double, lance uma exceção InvalidCastException. |
Uma expressão é um tipo de dados numérico e a outra é uma string.Nada (Visual Basic) |
Adicionar, com Nothing valorado como zero. |
Uma expressão é uma sequência de caracteres, e a outra é Nothing |
Concatene, com Nothing valorado como " ". |
Se uma expressão for uma expressão Object, o Visual Basic toma as seguintes medidas.
Tipos de dados de expressões |
Ação pelo compilador |
A expressão Object contém um valor numérico e a outra é uma tipo de dados numérico |
Se Option Strict estiver On, então é gerado um erro do compilador. Se Option Strict estiver Off, adicione. |
Objectexpressão contém um valor numérico e a outra é do tipoString |
Se Option Strict estiver On, então é gerado um erro do compilador. Se Option Strict é Off, então implicitamente converta o String Double e adicione. Se a String não pode ser convertida para Double, lance uma exceção InvalidCastException. |
A expressão Object contém uma string e a outra é um tipo de dados numérico |
Se Option Strict estiver On, então é gerado um erro do compilador. Se Option Strict estiver Off, então implicitamente converta a string Object Double e adicione. Se a string Object não pode ser convertida para Double, lance uma exceção InvalidCastException. |
Objectexpressão contém uma seqüência de caracteres e a outra é do tipoString |
Se Option Strict estiver On, então é gerado um erro do compilador. Se Option Strict é Off, então implicitamente converta Object para String e adicione. |
Se as duas expressões forem expressões Object, o Visual Basic toma as seguintes medidas (somente Option Strict Off).
Tipos de dados de expressões |
Ação pelo compilador |
As duas expressões Object contém valores numéricos |
Somar |
Ambas expressões Object são do tipo String. |
Concatenar. |
Uma expressão Object contém uma string e a outra é um tipo de dados numérico |
Implicitamente converta a sequência de caracteres Object para Double e adicione. Se a sequência de caracteres Object não pode ser convertida para um valor numérico, em seguida, lance uma exceção InvalidCastException. |
Se qualquer um das expressões Objectfor avaliada como Nothing ou DBNull, o operador + vai tratá-la como uma String de valor " ".
Dica
Quando você usa o operador +, talvez não seja possível determinar se a adição ou concatenação de sequência de caracteres ocorrerá.Use o operador & de concatenação para eliminar ambiguidade e fornecer código autodocumentável.
Sobrecarga
O operador + pode ser sobrecarregado, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo daquela classe ou estrutura. Se seu código usa esse operador em tal classe ou estrutura, esteja certo que entende seu comportamento redefinido. Para obter mais informações, consulte Procedimentos do operador (Visual Basic).
Exemplo
O exemplo a seguir usa o operador + para somar números. Se os operandos forem ambos numéricos,o Visual Basic calcula o resultado aritmético. O resultado aritmético representa a soma de 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 as sequências de caracteres. Se os operandos forem ambos sequências de caracteres, o Visual Basic os concatena. O resultado da concatenação representa uma única sequência de caracteres consistindo no conteúdo de dois operandos um após o outro.
Se os operandos forem de tipos mistos, o resultado depende da configuração de Instrução Option Strict. O exemplo a seguir ilustra o resultado quando Option Strict está 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 está 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 ambiguidade, você deve usar o operador & em vez de + para concatenação.
Consulte também
Referência
Operadores de concatenação (Visual Basic)
Operadores aritméticos (Visual Basic)
Operadores listados por funcionalidade (Visual Basic)
Precedência do operador no Visual Basic