Un bon moyen de se souvenir de l'ami StringBuilder !
Si vous avez du mal à vous souvenir / à faire comprendre qu'il ne faut pas utiliser de concaténation de chaîne de caractères à partir du moment où :
- le nombre de chaînes n'est pas déterminé
- les chaînes ne sont pas littérales (car dans ce cas, la concaténation est effectuée à la compilation)
- l'opération ne se fait pas en une seule fois (donc, pas de concaténation dans des boucles)
Voici peut être un moyen de vous en souvenir plus facilement : écrivez donc la phrase suivante sur du papier, à l'ancienne : "Je ne dois pas utiliser la concaténation dans une boucle !"
Mais vous allez le faire façon concaténation de chaîne de caractères en .NET (et Java d'ailleurs, si je ne m'abuse) !
Pour celà, vous aller l'écrire mot après mot. Naturellement me direz vous.
Nous allons considérer les espaces et la ponctuation comme faisant partie du mot précédent, ce qui fait que la phrase citée comportera donc 10 "mots".
Voici la marche à suivre :
- prendre une feuille, écrire "Je "
- prendre une autre feuille, écrire "Je ne ", jeter la feuille précédente
- prendre une autre feuille, écrire "Je ne dois ", jeter la feuille précédente
- prendre une autre feuille, écrire "Je ne dois pas ", jeter la feuille précédente
- prendre une autre feuille, écrire "Je ne dois pas utiliser ", jeter la feuille précédente
- prendre une autre feuille, écrire "Je ne dois pas utiliser la ", jeter la feuille précédente
- prendre une autre feuille, écrire "Je ne dois pas utiliser la concaténation ", jeter la feuille précédente
- prendre une autre feuille, écrire "Je ne dois pas utiliser la concaténation dans ", jeter la feuille précédente
- prendre une autre feuille, écrire "Je ne dois pas utiliser la concaténation dans une ", jeter la feuille précédente
- prendre une autre feuille, écrire "Je ne dois pas utiliser la concaténation dans une boucle !", jeter la feuille précédente
Bilan des opérations pour votre phrase de 10 mots :
- vous avez gaspiller 9 feuilles
- vous avez écrit 45 mots de plus que nécessaire
Pour une phrase de 11 mots ça aurait donner :
- un gaspillage de 10 feuilles
- écriture de 55 mots de plus que nécessaire
Ca fait mal, non ? Vous savez maintenant ce que ressent votre ami le CLR et son camarade le Garbage Collector.
Voilà, ça devrait aider à retenir la signification du caractère immuable de la classe String ;-)
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :