La razón por la que siempre uso .Format() es por legibilidad y, en consecuencia, la reducción de errores y beneficios de mantenimiento. Por supuesto, esto no tiene sentido si eres relativamente nuevo en el código, ya que el segundo ejemplo es más intuitivo al principio. El primero parece innecesariamente complejo.
Sin embargo, si elige el segundo patrón, entonces comienza a tener problemas cuando tiene muchas variables. Aquí es donde es más fácil apreciar los beneficios del primer patrón.
por ejemplo
Console.Writeline(var1 + " " + var2 + "-" + var3 +
" some sort of additional text" + var4);
Nota el error: Necesito otro espacio después de "texto" pero eso no es fácil de ver en este ejemplo.
Sin embargo, si lo hago de otra manera:
Console.Writeline("{0} {1}-{2} some sort of additional text{3}",
var1, var2, var3, var4)
Es claro para ver lo que está pasando. Es más fácil apreciar el resultado final cuando se divide el formato de las variables que se van a usar.
Si queremos pensar aún más a largo plazo, entonces ayuda con la globalización/personalización. Si ponemos esas cadenas de formato en config, podemos cambiar el formato u orden de las variables sin tocar el código.
Es posible que desee ver en el código desensamblado para ver si hay una significativa diferencia de rendimiento. Yo personalmente prefiero el primero. – fardjad
Estoy continuamente conmocionado por las personas que encuentran que los especificadores de formato * son más legibles * que las concatenaciones simples. No me digas que nunca los has escrito mal y que debes regresar y corregir un error por eso. Además, vea [esta entrada del blog] (http://geekswithblogs.net/BlackRabbitCoder/archive/2010/05/10/c-string-compares-and-concatenations.aspx). Como resultado, la concatenación simple ('+') es mejor para concatenar (conjuntos razonablemente pequeños), 'StringBuilder' es mejor cuando se necesita construir en un bucle, y' Format' es el mejor formateo. El beneficio de rendimiento de usar 'Format' sobre' + 'es ** insignificante en el mejor de los casos **. –