2010-07-29 9 views

Répondre

4

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.

+3

Les expressions ne sont pas identiques même avec des chaînes si l'une des valeurs est null. – Fionnuala

+0

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? –

2

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.

+0

ok alors pourquoi avoir et pas du tout? –

+0

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). –

+0

Considérons une valeur nulle concaténée avec une chaîne en utilisant + – Fionnuala