number net money .net coding-style format string.format

.net - net - String.Format o no?



string.format java (8)

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

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

Especialmente en C # world usando String.Format para todo es muy común, normalmente como desarrollador de VB.NET a menos que tenga * I do not 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 de algo? ¿O es solo una preferencia personal?

Razones para usar String.Format (de The Answers) ( intentaré 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 interpretación

** A veces tengo que cambiar el estilo o reemplazar cosas dinámicamente luego uso String.Format *


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.


El primer método es muy difícil de leer y aún más aburrido de escribir. Además, una vez que empiezas a hacer muchas de esas concatenaciones, hay consideraciones de rendimiento para pensar.


Para mí depende de los contenidos. Concatenar cadenas crea objetos de cadena adicionales (porque las cadenas son inmutables en .NET ), aunque principalmente es un problema de legibilidad.

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 hay, si necesita buscar el parámetro correcto para comprenderlo, entonces ...


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

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

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


Todo el mundo ha publicado acerca de qué tan legible es string.format (que acepto, y tiene ref e internacionalización), pero nadie ha mencionado que es considerablemente más lento que la simple concatenación de cadenas (pequeña cantidad de elementos) o StringBuilder (gran cantidad de concats).

Si el rendimiento importa o si está realizando una gran cantidad de operaciones (por lo que el rendimiento pronto será importante), 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/