Partager via


+ 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  

Pièces

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

Résultat

Si expression1 et expression2 sont tous les deux 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 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 « Remarques ».

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 règle générale, 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, 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, LongUIntegerIntegerShortULongUShort, DecimalSingleou )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 « Entier arithmétique » dans les types de données des résultats des opérateurs.
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 Onle cas, générez une erreur du compilateur.

Si Option Strict c’est Offle cas, convertissez implicitement la valeur en 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 Onle cas, générez une erreur du compilateur.

Si Option Strict c’est Offle cas, ajoutez-y.
Object l’expression contient une valeur numérique et l’autre est de type String Si Option Strict c’est Onle cas, générez une erreur du compilateur.

Si Option Strict c’est Offle cas, convertissez implicitement la valeur en 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 Onle cas, générez une erreur du compilateur.

Si Option Strict c’est Offle cas, 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 Onle cas, générez une erreur du compilateur.

Si Option Strict c’est Offle cas, 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 ou l’autre Object expression prend la valeur Nothing ou DBNull, l’opérateur + la traite comme une String valeur de « ».

Remarque

Lorsque vous utilisez l’opérateur + , vous ne pourrez peut-être pas déterminer si l’ajout ou la concaténation de chaîne se produit. Utilisez l’opérateur & pour la concaténation pour éliminer l’ambiguïté et fournir du code auto-documentant.

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 une telle classe ou structure, veillez à comprendre son comportement redéfini. Pour plus d’informations, consultez Procédures d’opérateur.

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 é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 seule chaîne 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