Question

Dupliquer à partir de: Sortie de chaîne: format ou concat en C #?

Surtout dans le monde C #, utiliser String.Format pour tout est très courant, normalement en tant que développeur VB.NET sauf si je dois * je ne sais pas String.Format,

.

Je préfère la concaténation de chaînes normale, telle que:

V1 = V2 & "test-x" & V3 & "-;"

pour moi, c'est mieux que ça:

V1 = String.Format("{0} test-x {1} -;", V2, V3)

Est-ce que je manque quelque chose? Ou est-ce juste une préférence personnelle?

Raisons d'utiliser String.Format (à partir des réponses) ( Je vais essayer de le garder à jour )

  • La localisation est tellement plus facile si vous utilisez le format de chaîne
  • Évidemment, il est plus facile de changer le format de l'entrée
  • C'est plus lisible ( cependant c'est personnel )
  • Meilleures performances

** Parfois, j'ai besoin de changer le style ou de remplacer des éléments de manière dynamique, puis j'utilise String.Format *

Était-ce utile?

La solution

Si vous envisagez de localiser votre application (et qu'il est souvent difficile de l'exclure au début), String.Format doit être préféré, pour deux raisons:

  1. Vous ne devez traduire qu'un seul littéral de chaîne
  2. Vous pouvez modifier l'ordre des valeurs, ce qui peut sembler plus logique dans une autre langue.

Autres conseils

Tout le monde a écrit sur le fait que string.format est lisible (ce que j’accepte, et c’est vrai, il a des avantages en termes de référence et d’internationalisation, oui), mais personne n’a mentionné qu'il est beaucoup plus lent que la simple concaténation de chaînes (petit nombre d'éléments) ou à l'aide de StringBuilder (grand nombre de concats).

Si les performances importent ou si vous effectuez un grand nombre d'opérations (si les performances le seront bientôt seront importantes), évitez de les formater.

Modifier: les références demandées;)

http://msmvps.com/blogs /jon_skeet/archive/2008/10/06/formatting-strings.aspx

http: // blog. briandicroce.com/2008/02/04/stringbuilder-vs-string-performance-in-net/

Bel article de Karl Seguin: mieux utiliser le code string.format expliquant certains des avantages.

La première méthode est très difficile à lire et encore plus difficile à taper. De plus, une fois que vous commencez à faire beaucoup de ces concaténations, vous devez tenir compte de vos performances.

Si vous formatez réellement des valeurs ({0: d}, etc.), String.Format est beaucoup mieux à lire que la concaténation de chaînes.

Pour moi, cela dépend du contenu. La concaténation de chaînes crée des objets chaîne supplémentaires (car Les chaînes sont immuables dans .NET ), bien que ce soit principalement un problème de lisibilité.

Parfois, cela devient compliqué lorsque vous voulez placer des caractères de nouvelle ligne dans une chaîne. Dans ce cas, j'ai tendance à utiliser quelque chose comme:

StringBuilder.AppendLine(string.Format("Some text {0}.", "here"));

Personnellement, je trouve que String.Format est plus facile à lire, la chaîne est présentée comme un texte consécutif. Cela dépend cependant du nombre de paramètres, si vous devez rechercher le bon paramètre pour le comprendre, puis ...

Je crois que c'est plus une question de préférence. Cependant, une fois que j'ai commencé à l'utiliser régulièrement, la plupart des membres de mon équipe ont emboîté le pas. Lorsque nous en avons discuté, il a été convenu que la compréhension et la lecture sont plus simples.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top