Creo string.Format()
que es más fácil ver cuál será exactamente el resultado (para que no tenga problemas con espacios olvidados o algo así), y también es más fácil de escribir y modificar.
Si desea hacer un formateo muy simple, usar el +
operador más podría ser más fácil, pero tiendo a usarlo solo cuando concatene dos cadenas, no más.
Para mostrar cómo string.Format()
es más fácil de modificar, considere que desea agregar un punto final al final de la oración en su ejemplo: ir de string.Format("The int is {0}", i)
a string.Format("The int is {0}.", i)
es solo un carácter. Pero pasar de "the int is " + i
a "the int is " + i + '.'
es mucho más.
Otra ventaja de esto string.Format()
es que le permite especificar fácilmente el formato a usar, como string.Format("The int is 0x{0:X}.", i)
. Esto es aún más importante al formatear la fecha.
En cuanto a la eficiencia, string.Format()
lo más probable es que sea más lento que las simples concatenaciones de cadenas. Pero es probable que un código como este no esté en una ruta activa, por lo que no importa. Y si lo hace, probablemente sea mejor usarlo StringBuilder
.