+ 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 , , Short UShort , Integer , UInteger , Long , Single ULong Decimal 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 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.