Question

C'est l'heure du refactor vendredi !!!

J'ai un objet que j'utilise pour générer des instructions SQL.

oDb.From est défini une fois. Ensuite, les métadonnées peuvent ajouter des jointures au fil du temps jusqu'à ce que nous combinions le tout et que nous le renvoyions.

Donc, le Q est le nombre de fois que je garde la syntaxe oDb.From + = avant de la remplacer par sbFrom.Append ()

S'agit-il des numéros 3, 4 ou 15?

Ou est-ce vraiment un problème de longueur de contenu, et si oui, quel est le # magique?

TIA

Était-ce utile?

La solution

Lisez http://www.codinghorror.com/blog/archives/001218. html

La classe StringBuilder est conçue pour les scénarios dans lesquels vous construisez des chaînes gigantesques et où l'utilisation d'une concaténation de chaînes normale serait vraiment trop lente.

Il est probable que pour le type de longueur de chaîne que vous utilisez, cela ne fera vraiment aucune différence - utilisez ce que vous préférez.

Autres conseils

Règle générale tout à fait non scientifique: je le ferais pour tous les éléments dépassant trois éléments - non pas à cause de l'amélioration des performances, mais plutôt par souci (espérons-le) de bonnes habitudes.

Si je dois ajouter plus de deux éléments à une chaîne, j'utilise presque toujours StringBuilder (je constate que si j'ajoute plus de deux, il y aura inévitablement plus d'éléments à mesure que des personnes commencent à ajouter à mon code ... donc StringBuilder est déjà là pour eux).

Je dirais tout ce que vous espérez dépasser de 1 à 5 Mo ou tout ce qui alloue beaucoup de chaînes en petits morceaux.

Ce n’est pas tout à fait non scientifique - j’ai lu un article il était une fois, où le constructeur de chaînes .NET devient plus efficace après 5 concaténations. C’est à ce moment que j’utilise généralement un constructeur de chaînes.

Aussi - je pense que la lisibilité entre vraiment en jeu à ce sujet et je préfère aussi le format de chaîne dans certains cas que les deux.

J'utilise StringBuilder lorsque le nombre de concaténations dans un algorithme augmente avec O (n). Si le nombre de concaténations est O (1), la lisibilité du temps souffre pour rien (sauf si la chaîne est très grande, ce qui n’est pas très souvent).

Ou quand je sais qu’une chaîne deviendra suffisamment grande. (Plus de 100 000 caractères)

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