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

#6 Pedro
18/04/2008 - 22:00 | Informe spam
Mostrar la cita
Pero en ese caso se usaria un stringbuilder mejor, no es asi?
O aun si fuese un bucle el compilador lo convierte a un stringbuilder y
append?

Gracias a todos.



"Guillermo 'guille'" escribió en el mensaje
news:
Mostrar la cita
#7 Guillermo guille
19/04/2008 - 15:30 | Informe spam
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.

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/


"Pedro" <pd> wrote in message news:
Mostrar la cita
#8 Sashka
19/04/2008 - 15:59 | Informe spam
Si, tienes razón van siendo optimizadas, sin embargo, nunca está de más
saber como el compilador une las cadenas...

Sashka

"Harvey Triana" escribió en el mensaje
news:
Mostrar la cita
#9 Harvey Triana
19/04/2008 - 18:13 | Informe spam
Es conceptual. Podías haber deducido la respueta de mi postulado...

string s = string.Format("{0}{1}{2}{3}", a, b, c, d);
Mostrar la cita
string s = new StringBuilder().AppendFormat("{0}{1}{2}{3}", a, b, c,
d).ToString();

- No deberíamos preocuparnos demasiado por las construcciones de cadenas
concatenadas, el compilador lo optimiza.

"Pedro" <pd> escribió en el mensaje
news:
Mostrar la cita
#10 Pedro
19/04/2008 - 20:28 | Informe spam
Mostrar la cita
No... es que con .net uno termina no estando seguro de nada ;-)
Ads by Google
Search Busqueda sugerida