String.format para concatenar

18/04/2008 - 18:34 por Pedro | Informe spam
Mi pregunta es si da alguna ventaja usar String.Format para concatenar.

Ej.

string a=st1+" parte intermedia " +st2;

o

string a=String.Format("{0} parte intermedia {1}", st1, st2);


o es lo mismo?

Preguntas similare

Leer las respuestas

#11 Harvey Triana
21/04/2008 - 15:21 | Informe spam
No... es que con .net uno termina no estando seguro de nada ;-)


- Totalmente de acuerdo.

"Pedro" <pd> escribió en el mensaje
news:
>
Es conceptual. Podías haber deducido la respueta de mi postulado...




No... es que con .net uno termina no estando seguro de nada ;-)


Respuesta Responder a este mensaje
#12 Hernan
21/04/2008 - 17:41 | Informe spam
On Apr 19, 3:30 pm, "Guillermo 'guille'"
wrote:
el compilador no te lo cambiará a StringBuilder (al menos no creo que
optimice tanto), pero sí, en todo caso, sería mejor concatenar con
StringBuilder, al menos así no estás creando nuevos objetos en memoria...
siempre y cuando esas concatenaciones creen "varias" nuevas cadenas.

Es decir, si haces esto:
string result = "value=" + x + ", and other= " + y + ".";

No tiene sentido usar un StringBuilder, entre otras cosas, porque si usas
Append del StringBuilder, estarías incrementando la cadena.

Otra cosa es que hagas:
string result = "value=" + x;
result = result + ", and other= " + y + ".";

En este último estás creando varios objetos de más que el StringBuilder te
podría ahorrar.



Ahora no tengo el enlace a mano, pero recuerdo que alguien había
publicado
unas comparativas. Si no me falla la memoria, creo que el número
mágico era 7.
Menos de 7 elementos a concatenar convenía usar "+", si son mas
conviene
StringBuilder. Había otras variables que influían.

Como dedicar tiempo en pre-micro-optimizaciones es perder tiempo de
desarrollo, mi regla tonta es:
- si la concatenación se hace en una sentencia o expresión usar '+',
- si va dentro de un bucle, usar StringBuilder.

-H.
Respuesta Responder a este mensaje
#13 Guillermo guille
22/04/2008 - 23:20 | Informe spam
yo casi lo mismo que comentas, para unas cuantas concatenaciones que no se
repitan en un bucle, uso la "suma", en otros casos, uso el StringBuilder,
incluso si voy a hacer manipulaciones de cadenas que me resultan más fácil
desde String, pues... lo convierto en String aunque sea desde un
StringBuilder, que veo que necesito más rapidez... ya haré lo que tenga que
hacer... y si no sé cómo hacerlo, pues... agua y ajo... ¡qué remedio! ;-))))

Nos vemos
Guillermo

Microsoft MVP Visual Basic desde 1997
Tus consultas en los foros del Guille: http://foros.elguille.info/
Ya puedes comprar mi nuevo libro: http://www.elguille.info/NET/NovedadesVB9/


"Hernan" wrote in message
news:
On Apr 19, 3:30 pm, "Guillermo 'guille'"
wrote:
el compilador no te lo cambiará a StringBuilder (al menos no creo que
optimice tanto), pero sí, en todo caso, sería mejor concatenar con
StringBuilder, al menos así no estás creando nuevos objetos en memoria...
siempre y cuando esas concatenaciones creen "varias" nuevas cadenas.

Es decir, si haces esto:
string result = "value=" + x + ", and other= " + y + ".";

No tiene sentido usar un StringBuilder, entre otras cosas, porque si usas
Append del StringBuilder, estarías incrementando la cadena.

Otra cosa es que hagas:
string result = "value=" + x;
result = result + ", and other= " + y + ".";

En este último estás creando varios objetos de más que el StringBuilder te
podría ahorrar.



Ahora no tengo el enlace a mano, pero recuerdo que alguien había
publicado
unas comparativas. Si no me falla la memoria, creo que el número
mágico era 7.
Menos de 7 elementos a concatenar convenía usar "+", si son mas
conviene
StringBuilder. Había otras variables que influían.

Como dedicar tiempo en pre-micro-optimizaciones es perder tiempo de
desarrollo, mi regla tonta es:
- si la concatenación se hace en una sentencia o expresión usar '+',
- si va dentro de un bucle, usar StringBuilder.

-H.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida