Quelle est la différence entre:VBA: Différence entre & et +
string1 + string2
et
string1 & string2
Sont-ils équivalents? Pourquoi avoir deux symboles différents qui font la même chose?
Quelle est la différence entre:VBA: Différence entre & et +
string1 + string2
et
string1 & string2
Sont-ils équivalents? Pourquoi avoir deux symboles différents qui font la même chose?
Les expressions sont identiques tant que les opérandes sont des chaînes; sinon, +
pourrait les ajouter à la place en fonction des conversions de type. &
garantit que vous n'obtiendrez rien sauf une concaténation de chaînes, et convertira les opérandes en chaînes si possible.
Il y a une entrée MSDN à propos Concatenation operations in Visual Basic qui explique:
L'opérateur & (Visual Basic) est définie uniquement pour cordes opérandes, et il s'élargit toujours ses opérandes à cordes, quel que soit le réglage de l'option Strict . L'opérateur & est recommandé pour la concaténation de chaînes car il est défini exclusivement pour les chaînes et réduit vos chances de générer une conversion involontaire.
Les deux expressions sont équivalentes, mais les opérateurs ne le sont pas. +
peut être utilisé comme un opérateur arithmétique ainsi que pour la concaténation de chaînes, &
ne peut être utilisé pour ce dernier.
ok alors pourquoi avoir et pas du tout? –
Ils ont un comportement différent, voir ['+' opérateur] (http://msdn.microsoft.com/fr-fr/library/9c5t70w2%28v=VS.80%29.aspx) par rapport à l'opérateur ['&'] (http://msdn.microsoft.com/en-us/library/wfx50zyk%28v=VS.80%29.aspx). –
Considérons une valeur nulle concaténée avec une chaîne en utilisant + – Fionnuala
Les expressions ne sont pas identiques même avec des chaînes si l'une des valeurs est null. – Fionnuala
L'article MSDN concerne Visual Basic, mais je suppose que cela fonctionne également dans VBA? Il n'y a pas de page de documentation VBA ou est-ce? –