Pregunta

Duplicar desde: Salida de cadena: ¿formato o concat en C #?

Especialmente en el mundo de C #, usar String.Format para todo es realmente común, normalmente como desarrollador de VB.NET, a menos que tenga que * No hago String.Format,

Prefiero la concatenación de cadenas normal, como:

V1 = V2 & "test-x" & V3 & "-;"

para mí es mejor que esto:

V1 = String.Format("{0} test-x {1} -;", V2, V3)

¿Me estoy perdiendo algo? ¿O es solo una preferencia personal?

Razones para usar String.Format (De las respuestas) ( Trataré de mantener esto actualizado )

  • La localización es mucho más fácil si usa el formato de cadena
  • Obviamente es más fácil cambiar el formato de entrada
  • Es más legible ( sin embargo, esto es personal )
  • Mejor rendimiento

** A veces necesito cambiar el estilo o reemplazar las cosas dinámicamente y luego uso String.Format *

¿Fue útil?

Solución

Si alguna vez vas a localizar tu aplicación (y a menudo es difícil descartarlo al principio), entonces String.Format es el preferido, por dos razones:

  1. Solo tiene una cadena literal para traducir
  2. Puede cambiar el orden de los valores, lo que puede tener más sentido en otro idioma.

Otros consejos

Todos han publicado acerca de cuán legible es string.format (lo cual acepto, y tiene beneficios de referencia nula e internacionalización, sí) pero nadie ha mencionado que es considerablemente más lento que la simple concatenación de cadenas (número pequeño de elementos) o usando StringBuilder (gran número de concats).

Si el rendimiento es importante o está realizando una gran cantidad de operaciones (por lo que el rendimiento pronto será importante), entonces debe evitar el formato.

Editar: referencias según lo solicitado;)

http://msmvps.com/blogs /jon_skeet/archive/2008/10/06/formatting-strings.aspx

http: // blog. briandicroce.com/2008/02/04/stringbuilder-vs-string-performance-in-net/

Buen artículo aquí por Karl Seguin: código mejor - uso string.format explicando algunos de los beneficios.

El primer método es muy difícil de leer y aún más aburrido de escribir. Además, una vez que comience a hacer muchas de esas concatenaciones, debe tener en cuenta las consideraciones de rendimiento.

Si realmente está formateando valores ({0: d} etc.), String.Format es mucho mejor para leer que la concatenación de cadenas.

Para mí depende del contenido. La concatenación de cadenas crea objetos de cadena adicionales (porque las cadenas son inmutables en .NET ), aunque principalmente es un problema de lectura.

A veces se complica cuando quieres colocar caracteres de nueva línea en una cadena, en cuyo caso tiendo a usar algo como:

StringBuilder.AppendLine(string.Format("Some text {0}.", "here"));

Personalmente, encuentro que String.Format es más fácil de leer, la cadena se presenta como un texto consecutivo. Sin embargo, depende de cuántos parámetros haya, si necesita buscar el parámetro correcto para comprenderlo, entonces ...

Creo que es más una cuestión de preferencia. Sin embargo, una vez que comencé a usarlo regularmente, la mayoría de mi equipo hizo lo mismo. Cuando lo discutimos, se acordó que es más fácil de entender y leer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top