Condividi tramite


Operatore + (Visual Basic)

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

expression1 + expression2
- or -
+ expression1

Parti

Termine

Definizione

expression1

Obbligatorio. Qualsiasi espressione numerica o stringa.

expression2

Obbligatoria, a meno che con l'operatore + non venga calcolato un valore negativo. Qualsiasi espressione numerica o stringa.

Risultato

Se expression1 ed expression2 sono entrambe di tipo numerico, il risultato è rappresentato dalla relativa somma aritmetica.

Se expression2 è assente, l'operatore + rappresenta l'operatore di identità unario per il valore non modificato di un'espressione. In questo caso, l'operazione consiste nel mantenere il segno di expression1, in modo che il risultato sia negativo se expression1 è negativa.

Se expression1 ed expression2 sono entrambe di tipo stringa, il risultato è rappresentato dalla concatenazione dei rispettivi valori.

Se expression1 ed expression2 sono di tipo diverso, l'azione eseguita dipende dal tipo, dal contenuto e dall'impostazione dell'Istruzione Option Strict. Per ulteriori informazioni, vedere le tabelle nella sezione relativa alle osservazioni.

Tipi supportati

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

Note

In generale, + esegue la somma aritmetica quando possibile e la concatenazione solo nel caso in cui entrambe le espressioni siano stringhe.

Se nessuna delle due espressioni è di tipo Object, verranno eseguite le operazioni riportate di seguito.

Tipi di dati delle espressioni

Operazione del compilatore

Entrambe le espressioni sono tipi di dati numerici (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong, Decimal, Single o Double)

Verrà eseguita una somma. Il tipo di dati del risultato è un tipo numerico appropriato in base ai tipi di dati di expression1 ed expression2. Per informazioni, vedere le tabelle "Operazioni aritmetiche su valori integer" in Tipi di dati dei risultati degli operatori (Visual Basic).

Entrambe le espressioni sono di tipo String

Verrà eseguita una concatenazione.

Un'espressione è di tipo numerico e l'altra è una stringa

Se Option Strict è On, verrà generato un errore del compilatore.

Se Option Strict è Off, verranno eseguite la conversione implicita di String in Double e la somma.

Se String non può essere convertito in Double, verrà generata un'eccezione InvalidCastException.

Un'espressione è di tipo numerico e l'altra è Nothing (Visual Basic)

Verrà eseguita una somma assegnando a Nothing il valore zero.

Un'espressione è una stringa e l'altra è Nothing

Verrà eseguita una concatenazione assegnando a Nothing il valore "".

Se una delle due espressioni è di tipo Object, verranno eseguite le operazioni riportate di seguito.

Tipi di dati delle espressioni

Operazione del compilatore

L'espressione Object contiene un valore numerico mentre l'altra è un tipo di dati numerico

Se Option Strict è On, verrà generato un errore del compilatore.

Se Option Strict è Off, verrà eseguita la somma.

Object contiene un valore numerico mentre l'altra espressione è di tipo String

Se Option Strict è On, verrà generato un errore del compilatore.

Se Option Strict è Off, verranno eseguite la conversione implicita di String in Double e la somma.

Se String non può essere convertito in Double, verrà generata un'eccezione InvalidCastException.

L'espressione Object contiene una stringa mentre l'altra espressione è un tipo di dati numerico

Se Option Strict è On, verrà generato un errore del compilatore.

Se Option Strict è Off, verranno eseguite la conversione implicita di Object in Double e la somma.

Se l'espressione Object di tipo stringa non può essere convertita in Double, verrà generata un'eccezione InvalidCastException.

Object contiene una stringa mentre l'altra espressione è di tipo String

Se Option Strict è On, verrà generato un errore del compilatore.

Se Option Strict è Off, verranno eseguite la conversione implicita di Object in String e la concatenazione.

Se entrambe le espressioni sono di tipo Object, verranno eseguite le operazioni riportate di seguito (solo Option Strict Off).

Tipi di dati delle espressioni

Operazione del compilatore

Entrambe le espressioni Object contengono valori numerici

Verrà eseguita una somma.

Entrambe le espressioni Object sono di tipo String

Verrà eseguita una concatenazione.

Un'espressione Object contiene un valore numerico mentre l'altra contiene una stringa

Verranno eseguite la conversione implicita dell'espressione Object di tipo stringa in Double e la somma.

Se l'espressione Object di tipo stringa non può essere convertita in un valore numerico, verrà generata un'eccezione InvalidCastException.

Se una delle due espressioni Object restituisce Nothing o DBNull, l'operatore + la considererà di tipo String con valore "".

Nota

Quando si utilizza l'operatore +, non sempre è possibile stabilire se verrà eseguita una somma o una concatenazione di stringhe.Per eliminare qualsiasi ambiguità e fornire codice autodocumentato, si consiglia di utilizzare l'operatore & per la concatenazione.

Overload

L'operatore + può essere sottoposto a overload. In altri termini, una classe o una struttura può ridefinirne il comportamento quando un operando specifica il tipo di tale classe o struttura. Se il codice utilizza l'operatore su una classe o una struttura di questo tipo, è importante comprendere il comportamento ridefinito di tale operatore. Per ulteriori informazioni, vedere Routine di operatore (Visual Basic).

Esempio

Nell'esempio riportato di seguito l'operatore + viene utilizzato per eseguire la somma di numeri. Se gli operandi sono entrambi numerici, verrà calcolato 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.

L'operatore + consente anche di concatenare stringhe. Se gli operandi sono entrambi stringhe, verrà eseguita la concatenazione. Il risultato dell'operazione di concatenazione rappresenta una stringa singola costituita dal contenuto dei due operandi in successione.

Se gli operandi appartengono a tipi diversi, il risultato dipende dall'impostazione dell'Istruzione Option Strict. Nell'esempio riportato di seguito viene illustrato il risultato che si ottiene 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 riportato di seguito viene illustrato il risultato che si ottiene 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 qualsiasi ambiguità, si consiglia di eseguire la concatenazione utilizzando l'operatore & anziché +.

Vedere anche

Riferimenti

Operatore & (Visual Basic)

Operatori di concatenazione (Visual Basic)

Operatori aritmetici (Visual Basic)

Elenco degli operatori per funzionalità (Visual Basic)

Precedenza tra gli operatori in Visual Basic

Istruzione Option Strict

Concetti

Operatori aritmetici in Visual Basic