Condividi tramite


Operatore + (Visual Basic)

Aggiunge due numeri o restituisce il valore positivo di un'espressione numerica. Può essere usato anche per concatenare due espressioni stringa.

Sintassi

expression1 + expression2

o

+expression1  

Parti

Termine Definizione
expression1 Obbligatorio. Qualsiasi espressione numerica o stringa.
expression2 Obbligatorio a meno che l'operatore + non stia calcolando un valore negativo. Qualsiasi espressione numerica o stringa.

Risultato

Se expression1 e expression2 sono entrambi numerici, il risultato è la somma aritmetica.

Se expression2 è assente, l'operatore + identity è l'operatore identity unario per il valore non modificato di un'espressione. In questo senso, l'operazione consiste nel mantenere il segno di expression1, quindi il risultato è negativo se expression1 è negativo.

Se expression1 e expression2 sono entrambe stringhe, il risultato è la concatenazione dei relativi valori.

Se expression1 e expression2 sono di tipi misti, l'azione eseguita dipende dai relativi tipi, dal relativo contenuto e dall'impostazione dell'istruzione Option Strict. Per altre informazioni, vedere le tabelle in "Osservazioni".

Tipi supportati

Tutti i tipi numerici, inclusi i tipi senza segno e a virgola mobile e Decimale String.

Osservazioni:

In generale, + esegue l'addizione aritmetica quando possibile e concatena solo quando entrambe le espressioni sono stringhe.

Se nessuna delle due espressioni è , ObjectVisual Basic esegue le azioni seguenti.

Tipi di dati di espressioni Azione da parte del compilatore
Entrambe le espressioni sono tipi di dati numerici (SByte, Byte, Short, UShort, IntegerUInteger, DecimalULongLongSingleo )Double Aggiungi. Il tipo di dati risultante è un tipo numerico appropriato per i tipi di dati di expression1 e expression2. Vedere le tabelle aritmetiche integer nei tipi di dati dei risultati dell'operatore.
Entrambe le espressioni sono di tipo String Concatenare.
Un'espressione è un tipo di dati numerico e l'altra è una stringa Se Option Strict è On, generare un errore del compilatore.

Se Option Strict è Off, convertire in modo implicito in DoubleString e aggiungere .

Se non è possibile convertire Doublein String , generare un'eccezioneInvalidCastException.
Un'espressione è un tipo di dati numerico e l'altra è Nothing Aggiungi, con Nothing valore uguale a zero.
Un'espressione è una stringa e l'altra è Nothing Concatenare, con Nothing valore "".

Se un'espressione è un'espressione Object , Visual Basic esegue le azioni seguenti.

Tipi di dati di espressioni Azione da parte del compilatore
Object expression contiene un valore numerico e l'altro è un tipo di dati numerico Se Option Strict è On, generare un errore del compilatore.

Se Option Strict è Off, aggiungere .
Object expression contiene un valore numerico e l'altro è di tipo String Se Option Strict è On, generare un errore del compilatore.

Se Option Strict è Off, convertire in modo implicito in DoubleString e aggiungere .

Se non è possibile convertire Doublein String , generare un'eccezioneInvalidCastException.
Object expression contiene una stringa e l'altra è un tipo di dati numerico Se Option Strict è On, generare un errore del compilatore.

Se Option Strict è Off, convertire in modo implicito la stringa Object in Double e aggiungere .

Se la stringa Object non può essere convertita in Double, generare un'eccezione InvalidCastException .
Object expression contiene una stringa e l'altra è di tipo String Se Option Strict è On, generare un errore del compilatore.

Se Option Strict è Off, convertire ObjectString in modo implicito in e concatenare.

Se entrambe le espressioni sono Object espressioni, Visual Basic esegue le azioni seguenti (Option Strict Off solo ).

Tipi di dati di espressioni Azione da parte del compilatore
Entrambe Object le espressioni contengono valori numerici Aggiungi.
Entrambe Object le espressioni sono di tipo String Concatenare.
Un'espressione Object contiene un valore numerico e l'altra contiene una stringa Convertire in modo implicito la stringa Object in Double e aggiungere.

Se la stringa Object non può essere convertita in un valore numerico, generare un'eccezione InvalidCastException .

Se una delle Object due espressioni restituisce Nothing o DBNull, l'operatore + lo considera come con String un valore "".

Annotazioni

Quando si usa l'operatore + , potrebbe non essere possibile determinare se si verificherà la concatenazione di addizioni o stringhe. Usare l'operatore per la concatenazione per eliminare l'ambiguità & e fornire codice autodocumentato.

Sovraccarico

L'operatore + può essere sottoposto a overload, il che significa che una classe o una struttura può ridefinirne il comportamento quando un operando ha il tipo di tale classe o struttura. Se il codice usa questo operatore in una classe o una struttura di questo tipo, assicurarsi di comprenderne il comportamento ridefinito. Per altre informazioni, vedere Operator Procedures.

Esempio

Nell'esempio seguente viene usato l'operatore + per aggiungere numeri. Se gli operandi sono entrambi numerici, Visual Basic calcola il risultato aritmetico. Il risultato aritmetico rappresenta la somma dei due operandi.

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

È anche possibile usare l'operatore + per concatenare stringhe. Se gli operandi sono entrambe stringhe, Visual Basic li concatena. Il risultato della concatenazione rappresenta una singola stringa costituita dal contenuto dei due operandi uno dopo l'altro.

Se gli operandi sono di tipi misti, il risultato dipende dall'impostazione dell'istruzione Option Strict. Nell'esempio seguente viene illustrato il risultato 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. 

Nell'esempio seguente viene illustrato il risultato 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.

Per eliminare l'ambiguità, è consigliabile usare l'operatore & anziché + per la concatenazione.

Vedere anche