+, 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
or
+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 à la fois numériques, le résultat est leur somme arithmétique.
S’il expression2
est absent, l’opérateur +
est l’opérateur d’identité unaire pour la valeur inchangée d’une expression. Dans ce sens, l’opération consiste à conserver le signe de expression1
, de sorte que le résultat est négatif s’il expression1
est négatif.
Si expression1
et expression2
sont les deux chaînes, le résultat est la concaténation de leurs valeurs.
Si expression1
et expression2
sont des types mixtes, l’action effectuée dépend de leurs types, de leur contenu et de la définition 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
.
Remarques
En général, +
effectue une addition arithmétique lorsque cela est possible et concatène uniquement lorsque les deux expressions sont des chaînes.
Si aucune expression n’est une Object
expression, 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 , UShort Short , Integer , UInteger , Single Decimal Long ULong ou )Double |
Ajouter. Le type de données de résultat est un type numérique approprié pour les types de données et expression1 expression2 . Consultez les tables « Arithmétique d’entier » dans les 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érique et l’autre est une chaîne | Si Option Strict c’est le cas On , générez une erreur du compilateur.Si Option Strict c’est Off le cas, convertissez implicitement le vers Double et l’ajoutezString .Si la String valeur ne peut pas être convertie Double , lèvez une InvalidCastException exception. |
Une expression est un type de données numérique, et l’autre est Nothing | Ajoutez, avec Nothing la valeur zéro. |
Une expression est une chaîne, et l’autre est Nothing |
Concaténer, avec Nothing la valeur « ». |
Si une expression est une Object
expression, Visual Basic effectue les actions suivantes.
Types de données d’expressions | Action par compilateur |
---|---|
Object l’expression contient une valeur numérique et l’autre est un type de données numérique |
Si Option Strict c’est le cas On , générez une erreur du compilateur.Si Option Strict c’est le cas Off , ajoutez-le. |
Object l’expression contient une valeur numérique et l’autre est de type String |
Si Option Strict c’est le cas On , générez une erreur du compilateur.Si Option Strict c’est Off le cas, convertissez implicitement le vers Double et l’ajoutezString .Si la String valeur ne peut pas être convertie Double , lèvez une InvalidCastException exception. |
Object l’expression contient une chaîne et l’autre est un type de données numérique |
Si Option Strict c’est le cas On , générez une erreur du compilateur.Si Option Strict c’est le cas Off , convertissez implicitement la chaîne Object en Double et ajoutez.Si la chaîne Object ne peut pas être convertie Double en , lèvez une InvalidCastException exception. |
Object l’expression contient une chaîne et l’autre est de type String |
Si Option Strict c’est le cas On , générez une erreur du compilateur.Si Option Strict c’est le cas Off , convertissez Object implicitement en String et concaténer. |
Si les deux expressions sont Object
des expressions, Visual Basic effectue les actions suivantes (Option Strict Off
uniquement).
Types de données d’expressions | Action par compilateur |
---|---|
Les deux Object expressions contiennent des valeurs numériques |
Ajouter. |
Les deux Object expressions sont de type String |
Concaténer. |
Une Object expression contient une valeur numérique et l’autre contient 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, lèvez une InvalidCastException exception. |
Si l’une Object
des expressions prend la valeur Nothing ou DBNullsi l’opérateur la +
traite comme une String
valeur « ».
Notes
Lorsque vous utilisez l’opérateur +
, vous ne pourrez peut-être pas déterminer si l’ajout ou la concaténation de chaînes se produira. Utilisez l’opérateur &
pour concaténation afin d’éliminer l’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 de cette structure. Si votre code utilise cet opérateur sur une telle classe ou structure, veillez à comprendre son comportement 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 à la fois 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 également 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 quand 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 quand 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 l’ambiguïté, vous devez utiliser l’opérateur &
au lieu de +
concaténation.