58 votes

Esperluette vs plus pour concaténer des chaînes dans VB.NET

Dans VB.NET, y a-t-il un avantage à utiliser & pour concaténer des chaînes au lieu de + ?

Par exemple

 Dim x as String = "hello" + " there"
 

contre.

 Dim x as String = "hello" & " there"
 

Oui, je sais que pour beaucoup de concaténations de chaînes, j'aimerais utiliser StringBuilder , mais c'est une question plus générale.

48voto

Walter Points 1586

La préférence de Micorosoft est que les programmeurs VB utilisent & pour les chaînes, PAS +.

Vous pouvez également utiliser l'opérateur + pour concaténer des chaînes. Cependant, pour éliminer toute ambiguïté, utilisez plutôt l'opérateur &.

44voto

Joel Coehoorn Points 190579

J'ai entendu de bonnes, de solides arguments en faveur des deux opérateurs. Quel argument remporte le jour dépend de votre situation. La seule chose que je peux dire, c'est que vous devrait normaliser sur l'un ou l'autre. Code qui mêle les deux demande de confusion plus tard.

Les deux arguments je me souviens maintenant de privilégier &:

  • Si vous n'êtes pas à l'aide de Option Strict et ont deux chaînes numériques, il est facile pour le compilateur de confondre votre sens de l' + opérateur, vous le savez, plus
  • Si vous êtes à la mise à jour d'un lot de vieux vb6-era code, il permet de ne pas avoir à convertir les opérateurs de concaténation ( et n'oubliez pas: nous voulons de la cohérence).

Et +:

  • Si vous avez un mixte vb/C# boutique, c'est agréable d'avoir un seul opérateur de concaténation. Il est plus facile de passer le code entre les langues et les moyens tout beaucoup moins d'un changement de contexte pour les programmeurs quand va-et-vient entre les langues
  • & est presque unique dans VB, alors que + entre les chaînes est compris dans de nombreuses langues à dire de concaténation, de sorte que vous pouvez obtenir un petit quelque chose en plus de lisibilité.

15voto

Barry Points 18913

Je préfère utiliser & pour les concaténations de chaînes dans VB.NET

Une des raisons est d'éviter toute confusion, par exemple

 MessageBox.Show(1 & 2)
MessageBox.Show(1 + 2)
 

10voto

ho1 Points 31752

Il est plus sûr de l'utiliser et puisque vous expliquez clairement votre intention au compilateur (je veux concaténer ces deux valeurs et elles doivent toutes deux être converties en chaînes).

L'utilisation de + peut rendre difficile la recherche de bogues si les chaînes sont des valeurs numériques, du moins si l'option strict est désactivée.

Par exemple:

 1 + "1" = 2 ' this fails if option strict is on
1 & "1" = 11
 

Edit: cependant, si vous concaténez un non-chaîne, vous devriez probablement utiliser une meilleure méthode de toute façon.

5voto

PhiLho Points 23458

Je suppose que c'est historique (non .NET Visual Basic utilise &, je ne sais pas pourquoi ils ont introduit le +) et une question de goût (je préfère & parce que nous concaténons des chaînes, nous ne les ajoutons pas ...).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X