+, opérateur (Visual Basic)

Ajoute deux nombres ou retourne la valeur positive d’une expression numérique. Peut également être utilisé pour concaténer deux expressions de chaîne.

Syntaxe

expression1 + expression2

ou

+expression1  

Éléments

Terme Définition
expression1 Obligatoire. Toute expression numérique ou de chaîne.
expression2 Obligatoire, sauf si l’opérateur + calcule une valeur négative. Toute expression numérique ou de chaîne.

Résultats

Si expression1 et expression2 sont tous deux numériques, le résultat est leur somme arithmétique.

Si expression2 est absent, l’opérateur + est l’opérateur d’identité unaire pour la valeur inchangée d’une expression. En ce sens, l’opération consiste à conserver le signe de expression1, de sorte que le résultat est négatif si expression1 est négatif.

Si expression1 et expression2 sont deux chaînes, le résultat est la concaténation de leurs valeurs.

Si expression1 et expression2 sont de types mixtes, l’action effectuée dépend de leurs types, de leur contenu et du paramètre de l’instruction Option Strict. Pour plus d’informations, consultez les tableaux dans « Notes ».

Types pris en charge

Tous les types numériques, y compris les types non signés et à virgule flottante et Decimal, et String.

Notes

En général, + effectue l’ajout arithmétique lorsque cela est possible et concatène uniquement lorsque les deux expressions sont des chaînes.

Si aucune des deux expressions n’est un Object, Visual Basic effectue les actions suivantes.

Types de données d’expressions Action par compilateur
Les deux expressions sont des types de données numériques (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong, Decimal, Single, ou Double) Ajouter. Le type de données de résultat est un type numérique approprié pour les types de données de expression1 et expression2. Consultez les tables « Integer Arithmetic » dans Types de données des résultats de l’opérateur.
Les deux expressions sont de type String Concaténer.
Une expression est un type de données numériques et l’autre est une chaîne Si Option Strict a la valeur On, générez une erreur de compilateur.

Si Option Strict a la valeur Off, convertissez implicitement le String en Double et ajoutez.

Si le String ne peut pas être converti en Double, levez une exception InvalidCastException.
Une expression est un type de données numériques, et l’autre est Nothing Ajoutez, avec Nothing ayant une valeur de zéro.
Une expression est une chaîne et l’autre est Nothing Concaténer, avec Nothing ayant une valeur de "".

Si une expression est une expression Object, Visual Basic effectue les actions suivantes.

Types de données d’expressions Action par compilateur
L’expression Object contient une valeur numérique et l’autre est un type de données numériques Si Option Strict a la valeur On, générez une erreur de compilateur.

Si Option Strict est Off, ajoutez.
L’expression Object contient une valeur numérique et l’autre est un type String Si Option Strict a la valeur On, générez une erreur de compilateur.

Si Option Strict a la valeur Off, convertissez implicitement le String en Double et ajoutez.

Si le String ne peut pas être converti en Double, levez une exception InvalidCastException.
L’expression Object contient une chaîne et l’autre est un type de données numériques Si Option Strict a la valeur On, générez une erreur de compilateur.

Si Option Strict a la valeur Off, convertissez implicitement la chaîne Object en Double et ajoutez.

Si la chaîne Object ne peut pas être convertie en Double, levez une exception InvalidCastException.
L’expression Object contient une chaîne et l’autre est de type String Si Option Strict a la valeur On, générez une erreur de compilateur.

Si Option Strict est Off, convertissez implicitement Object en String et concaténer.

Si les deux expressions sont des expressions Object, Visual Basic effectue les actions suivantes (Option Strict Off uniquement).

Types de données d’expressions Action par compilateur
Les deux expressions Object contiennent des valeurs numériques Ajouter.
Les deux expressions Object sont de type String Concaténer.
Une expression Object contient une valeur numérique et l’autre une chaîne Convertissez implicitement la chaîne Object en Double et ajoutez.

Si la chaîne Object ne peut pas être convertie en valeur numérique, levez une exception InvalidCastException.

Si l’une des expressions Object prend la valeur Nothing ou DBNull, l’opérateur + la traite comme un String ayant la valeur "".

Notes

Lorsque vous utilisez l’opérateur +, il se peut que vous ne puissiez pas déterminer si l’ajout ou la concaténation de chaînes se produira. Utilisez l’opérateur & pour la concaténation afin d’éliminer toute ambiguïté et de fournir du code auto-documenté.

Surcharge

L’opérateur + peut être surchargé, ce qui signifie qu’une classe ou une structure peut redéfinir son comportement lorsqu’un opérande a le type de cette classe ou structure. Si votre code utilise cet opérateur sur ce type de classe ou structure, veillez à comprendre son comportement une fois qu’il est redéfini. Pour plus d'informations, consultez Operator Procedures.

Exemple

L’exemple suivant utilise l’opérateur + pour ajouter des nombres. Si les opérandes sont tous deux numériques, Visual Basic calcule le résultat arithmétique. Le résultat arithmétique représente la somme des deux opérandes.

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

Vous pouvez aussi utiliser l’opérateur + pour concaténer des chaînes. Si les opérandes sont les deux chaînes, Visual Basic les concatène. Le résultat de la concaténation représente une chaîne unique composée du contenu des deux opérandes l’un après l’autre.

Si les opérandes sont de types mixtes, le résultat dépend du paramètre de l’instruction Option Strict. L’exemple suivant illustre le résultat lorsque 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. 

L’exemple suivant illustre le résultat lorsque 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.

Pour éliminer toute ambiguïté, vous devez utiliser l’opérateur & au lieu de + pour la concaténation.

Voir aussi