+, 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.