Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Arnaud CLERET
Le deuxième cas est certes plus propres même si à mon avis l'exemple est ici mal choisi. L'utilisation du StringBuilder est en général faite dans le cadre des boucles "for, foreach ...", dans le cas de votre exemple un simple string.Format serait suffisant (même si cette méthode fait appel en interne à l'objet StringBuilder). On obtiendrait :
----- string result = string.Format("Bonjour {O} {1} ...",Titre,NomComplet) --
arno - http://www.dotnetguru2.org/acleret/
"Gilles TOURREAU" a écrit :
Salut tout le monde !
Est ce que ce code est correct ?
StringBuilder s; string uneAutreChaine = "Une autre chaine";
s = new StringBuilder("Blabla");
s.Append("Titi" + uneAutreChaine);
Ou faut-il mieux écrire ?
StringBuilder s; string uneAutreChaine = "Une autre chaine";
s = new StringBuilder("Blabla");
s.Append("Titi"); s.Append(uneAutreChaine);
En vous remerciant par avance de vos lumières...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Le deuxième cas est certes plus propres même si à mon avis l'exemple est ici
mal choisi. L'utilisation du StringBuilder est en général faite dans le cadre
des boucles "for, foreach ...", dans le cas de votre exemple un simple
string.Format serait suffisant (même si cette méthode fait appel en interne à
l'objet StringBuilder). On obtiendrait :
-----
string result = string.Format("Bonjour {O} {1} ...",Titre,NomComplet)
--
arno - http://www.dotnetguru2.org/acleret/
"Gilles TOURREAU" a écrit :
Salut tout le monde !
Est ce que ce code est correct ?
StringBuilder s;
string uneAutreChaine = "Une autre chaine";
s = new StringBuilder("Blabla");
s.Append("Titi" + uneAutreChaine);
Ou faut-il mieux écrire ?
StringBuilder s;
string uneAutreChaine = "Une autre chaine";
Le deuxième cas est certes plus propres même si à mon avis l'exemple est ici mal choisi. L'utilisation du StringBuilder est en général faite dans le cadre des boucles "for, foreach ...", dans le cas de votre exemple un simple string.Format serait suffisant (même si cette méthode fait appel en interne à l'objet StringBuilder). On obtiendrait :
----- string result = string.Format("Bonjour {O} {1} ...",Titre,NomComplet) --
arno - http://www.dotnetguru2.org/acleret/
"Gilles TOURREAU" a écrit :
Salut tout le monde !
Est ce que ce code est correct ?
StringBuilder s; string uneAutreChaine = "Une autre chaine";
s = new StringBuilder("Blabla");
s.Append("Titi" + uneAutreChaine);
Ou faut-il mieux écrire ?
StringBuilder s; string uneAutreChaine = "Une autre chaine";
s = new StringBuilder("Blabla");
s.Append("Titi"); s.Append(uneAutreChaine);
En vous remerciant par avance de vos lumières...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Paul Bacelar
Comme le compilateur et le JIT intègre des optimisateurs, je ne me prendrais pas trop la tête avec cela.
Je ferais juste un test de performance avec les deux versions dans un environnement typique d'utilisation pour connaître la meilleur (si il y en a une).
Dans l'absolu, j'ai une préférence pour la deuxième version qui me semble éliminer l'utilisation d'une variable intermédiaire de type string .
Mais les optimisateurs sont généralement beaucoup plus malin que moi et il faut donc raisonner sur le résultat de la compilation plutôt que sur le source.
Pensez à la première règle de toute optimisation, n'optimisez que ce qui a besoin d'être optimisé.
Les profilers permettent de respecter cette règle et évite de perdre du temps en optimisations de bouts de chandelle.
Si les tests sur le cas d'utilisation que vous montrez exhibe une net différence de performance, je pense que certain d'entre nous vont rapidement implémenter une règle dans FxCop pour que toute utilisation de l'opérateur + entre 2 strings paramètres de la méthode StringBuilder.Append engendre une alerte en post-compilation. Cela permettra de rapidement détecter les "erreurs" dans les sources des projets. -- Paul Bacelar MVP VC++
"Gilles TOURREAU" wrote in message news:
Salut tout le monde !
Est ce que ce code est correct ?
StringBuilder s; string uneAutreChaine = "Une autre chaine";
s = new StringBuilder("Blabla");
s.Append("Titi" + uneAutreChaine);
Ou faut-il mieux écrire ?
StringBuilder s; string uneAutreChaine = "Une autre chaine";
s = new StringBuilder("Blabla");
s.Append("Titi"); s.Append(uneAutreChaine);
En vous remerciant par avance de vos lumières...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Comme le compilateur et le JIT intègre des optimisateurs, je ne me prendrais
pas trop la tête avec cela.
Je ferais juste un test de performance avec les deux versions dans un
environnement typique d'utilisation pour connaître la meilleur (si il y en a
une).
Dans l'absolu, j'ai une préférence pour la deuxième version qui me semble
éliminer l'utilisation d'une variable intermédiaire de type string .
Mais les optimisateurs sont généralement beaucoup plus malin que moi et il
faut donc raisonner sur le résultat de la compilation plutôt que sur le
source.
Pensez à la première règle de toute optimisation, n'optimisez que ce qui a
besoin d'être optimisé.
Les profilers permettent de respecter cette règle et évite de perdre du
temps en optimisations de bouts de chandelle.
Si les tests sur le cas d'utilisation que vous montrez exhibe une net
différence de performance, je pense que certain d'entre nous vont rapidement
implémenter une règle dans FxCop pour que toute utilisation de l'opérateur +
entre 2 strings paramètres de la méthode StringBuilder.Append engendre une
alerte en post-compilation. Cela permettra de rapidement détecter les
"erreurs" dans les sources des projets.
--
Paul Bacelar
MVP VC++
"Gilles TOURREAU" <gilles.tourreau@pos.fr> wrote in message
news:mn.744d7d674a3886c4.52180@pos.fr...
Salut tout le monde !
Est ce que ce code est correct ?
StringBuilder s;
string uneAutreChaine = "Une autre chaine";
s = new StringBuilder("Blabla");
s.Append("Titi" + uneAutreChaine);
Ou faut-il mieux écrire ?
StringBuilder s;
string uneAutreChaine = "Une autre chaine";
Comme le compilateur et le JIT intègre des optimisateurs, je ne me prendrais pas trop la tête avec cela.
Je ferais juste un test de performance avec les deux versions dans un environnement typique d'utilisation pour connaître la meilleur (si il y en a une).
Dans l'absolu, j'ai une préférence pour la deuxième version qui me semble éliminer l'utilisation d'une variable intermédiaire de type string .
Mais les optimisateurs sont généralement beaucoup plus malin que moi et il faut donc raisonner sur le résultat de la compilation plutôt que sur le source.
Pensez à la première règle de toute optimisation, n'optimisez que ce qui a besoin d'être optimisé.
Les profilers permettent de respecter cette règle et évite de perdre du temps en optimisations de bouts de chandelle.
Si les tests sur le cas d'utilisation que vous montrez exhibe une net différence de performance, je pense que certain d'entre nous vont rapidement implémenter une règle dans FxCop pour que toute utilisation de l'opérateur + entre 2 strings paramètres de la méthode StringBuilder.Append engendre une alerte en post-compilation. Cela permettra de rapidement détecter les "erreurs" dans les sources des projets. -- Paul Bacelar MVP VC++
"Gilles TOURREAU" wrote in message news:
Salut tout le monde !
Est ce que ce code est correct ?
StringBuilder s; string uneAutreChaine = "Une autre chaine";
s = new StringBuilder("Blabla");
s.Append("Titi" + uneAutreChaine);
Ou faut-il mieux écrire ?
StringBuilder s; string uneAutreChaine = "Une autre chaine";
s = new StringBuilder("Blabla");
s.Append("Titi"); s.Append(uneAutreChaine);
En vous remerciant par avance de vos lumières...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr