+, opérateur (Visual Basic)

Mise à jour : novembre 2007

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

expression1 + expression2
- or -
+ expression1

Éléments

  • expression1
    Requis. Toute expression numérique ou de chaîne.

  • expression2
    Requis sauf si l'opérateur + calcule une valeur négative. Toute expression numérique ou de chaîne.

Résultat

Si expression1 et expression2 sont tous les 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. Dans ce sens, l'opération consiste à conserver le signe de expression1 ; le résultat est donc négatif si expression1 est négatif.

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

Si expression1 et expression2 sont de type mixte, l'action effectuée dépend de leur type, de leur contenu et de la définition de l'instruction Option Strict. Pour plus d'informations, consultez les tableaux dans « Remarks ».

Types pris en charge

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

Notes

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

Si aucune expression n'est un Object, Visual Basic effectue les actions suivantes.

Types de données d'expressions

Action du compilateur

Toutes les expressions sont de types de données numériques (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong, Decimal, Single ou Double)

Ajoute. Le type de données du résultat est un type numérique approprié aux types de données de expression1 et expression2. Consultez les tableaux « Arithmétique sur les entiers » dans Types de données des résultats d'opérateur.

Toutes les expressions sont de type String

Concatène.

Une expression est un type de données numérique et l'autre est une chaîne.

Si Option Strict est On, une erreur du compilateur est générée.

Si Option Strict est Off, le String est implicitement converti en Double, puis il est ajouté.

Si String ne peut pas être converti en Double, une exception InvalidCastException est levée.

Une expression est un type de données numérique et l'autre est Nothing (Visual Basic).

Ajoute, avec Nothing évaluée à zéro.

Une expression est une chaîne, l'autre est Nothing.

Concatène, avec Nothing évalué comme "".

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

Types de données d'expressions

Action du compilateur

L'expression Object contient une valeur numérique et l'autre est un type de données numérique

Si Option Strict est On, une erreur du compilateur est générée.

Ajoute si Option Strict est Off.

Object L'expression Object contient une valeur numérique et l'autre est de type StringString

Si Option Strict est On, une erreur du compilateur est générée.

Si Option Strict est Off, le String est implicitement converti en Double, puis il est ajouté.

Si String ne peut pas être converti en Double, une exception InvalidCastException est levée.

L'expression Object contient une chaîne et l'autre est un type de données numérique

Si Option Strict est On, une erreur du compilateur est générée.

Si Option Strict est Off, la chaîne Object est implicitement convertie en Double, puis elle est ajoutée.

Si la chaîne Object ne peut pas être convertie en Double, une exception InvalidCastException est levée.

Object L'expression Object contient une chaîne et l'autre est de type StringString

Si Option Strict est On, une erreur du compilateur est générée.

Si Option Strict est Off, Object est implicitement converti en String et est concaténé.

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 du compilateur

Toutes les expressions Object contiennent des valeurs numériques

Additionne.

Toutes les expressions Object sont de type String

Concatène.

Une expression Object contient une valeur numérique et l'autre contient une chaîne

Convertit implicitement la chaîne Object en Double et l'ajoute.

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

Si l'une des expressions Object prend la valeur Nothing ou DBNull, l'opérateur + la considère comme un String de valeur "".

Remarque :

Si vous utilisez l'opérateur +, il vous sera parfois difficile de déterminer si une addition ou une concaténation de chaînes se produira. Utilisez l'opérateur & pour la concaténation afin d'éliminer toute ambiguïté et de fournir un code auto-documenté.

Surcharge

L'opérateur + peut être surchargé, ce qui signifie qu'une classe ou 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, assurez-vous que vous comprenez son comportement redéfini. Pour plus d'informations, consultez Procédures d'opérateur.

Exemple

Cet exemple suivant utilise l'opérateur + pour ajouter des nombres. Si les opérandes sont tous 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 tous des chaînes, Visual Basic les concatène. Le résultat de 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 de la définition 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

Concepts

Opérateurs arithmétiques en Visual Basic

Référence

&, opérateur (Visual Basic)

Opérateurs de concaténation (Visual Basic)

Opérateurs arithmétiques (Visual Basic)

Opérateurs répertoriés par fonctionnalité

Priorité des opérateurs en Visual Basic

Option Strict, instruction