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
si eso lo repites miles de veces, usa la "suma" de cadenas ..



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:
para ese caso concreto lo mismo da, si eso lo repites miles de veces, usa
la "suma" de cadenas en vez de Format que esa función a su vez llama a
otras funciones y métodos.

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:
Para el ejemplo especifico que di no debo preocuparme entonces ?

Uso VS2008 express.


Gracias

"Harvey Triana" escribió en el mensaje
news:
Sashka-
Creo que el articulo que propones no resuelve la pregunta de Pedro...

En realidad no deberíamos preocuparnos demasiado por estas expresiones.
A medidad que los compiladores suben de version, la cuestion de las
cadenas inmutables es optimizado. Por ejemplo.

string result = "value=" + x + ", and other= " + y + "."
Es optimizado por el compilador a:
string result = new StringBuilder().Append("value=").Append(x).Append(",
and other=").Append(y).Append(".").ToString();

Y cuestiones similares.

<Harvey Triana />
http://vexpert.mvps.org

"Sashka" escribió en el mensaje
news:
Creo que aca está bastante claro :
http://nicolasferreira.com/?p

Sashka

"Pedro" <pd> escribió en el mensaje
news:
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?
















Respuesta Responder a este mensaje
#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:
>si eso lo repites miles de veces, usa la "suma" de cadenas ..

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:
para ese caso concreto lo mismo da, si eso lo repites miles de veces, usa
la "suma" de cadenas en vez de Format que esa función a su vez llama a
otras funciones y métodos.

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:
Para el ejemplo especifico que di no debo preocuparme entonces ?

Uso VS2008 express.


Gracias

"Harvey Triana" escribió en el mensaje
news:
Sashka-
Creo que el articulo que propones no resuelve la pregunta de Pedro...

En realidad no deberíamos preocuparnos demasiado por estas expresiones.
A medidad que los compiladores suben de version, la cuestion de las
cadenas inmutables es optimizado. Por ejemplo.

string result = "value=" + x + ", and other= " + y + "."
Es optimizado por el compilador a:
string result = new
StringBuilder().Append("value=").Append(x).Append(", and
other=").Append(y).Append(".").ToString();

Y cuestiones similares.

<Harvey Triana />
http://vexpert.mvps.org

"Sashka" escribió en el mensaje
news:
Creo que aca está bastante claro :
http://nicolasferreira.com/?p

Sashka

"Pedro" <pd> escribió en el mensaje
news:
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?




















Respuesta Responder a este mensaje
#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:
Sashka-
Creo que el articulo que propones no resuelve la pregunta de Pedro...

En realidad no deberíamos preocuparnos demasiado por estas expresiones. A
medidad que los compiladores suben de version, la cuestion de las cadenas
inmutables es optimizado. Por ejemplo.

string result = "value=" + x + ", and other= " + y + "."
Es optimizado por el compilador a:
string result = new StringBuilder().Append("value=").Append(x).Append(",
and other=").Append(y).Append(".").ToString();

Y cuestiones similares.

<Harvey Triana />
http://vexpert.mvps.org

"Sashka" escribió en el mensaje
news:
Creo que aca está bastante claro :
http://nicolasferreira.com/?p

Sashka

"Pedro" <pd> escribió en el mensaje
news:
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?









Respuesta Responder a este mensaje
#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);







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:
Para el ejemplo especifico que di no debo preocuparme entonces ?

Uso VS2008 express.


Gracias

"Harvey Triana" escribió en el mensaje
news:
Sashka-
Creo que el articulo que propones no resuelve la pregunta de Pedro...

En realidad no deberíamos preocuparnos demasiado por estas expresiones. A
medidad que los compiladores suben de version, la cuestion de las cadenas
inmutables es optimizado. Por ejemplo.

string result = "value=" + x + ", and other= " + y + "."
Es optimizado por el compilador a:
string result = new StringBuilder().Append("value=").Append(x).Append(",
and other=").Append(y).Append(".").ToString();

Y cuestiones similares.

<Harvey Triana />
http://vexpert.mvps.org

"Sashka" escribió en el mensaje
news:
Creo que aca está bastante claro :
http://nicolasferreira.com/?p

Sashka

"Pedro" <pd> escribió en el mensaje
news:
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?













Respuesta Responder a este mensaje
#10 Pedro
19/04/2008 - 20:28 | Informe spam

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
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida