+, 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 Objectexpression, 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, UShortShort, Integer, UInteger, SingleDecimalLongULongou )Double Ajouter. Le type de données de résultat est un type numérique approprié pour les types de données et expression1expression2. 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 Offle 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 Offle 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 Doubleen , 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 Offuniquement).

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.

Voir aussi