No hay una respuesta correcta singular a esta pregunta. Hay algunas cuestiones que desea tratar:
Rendimiento
Las diferencias de rendimiento en sus ejemplos (y en aplicaciones reales) son mínimos. Si comienza a escribir MUCHAS concatenaciones, verá gradualmente un mejor rendimiento de memoria con la cadena formateada. Consulte la Ben's answer
legibilidad
Va a ser mejor con una cadena con formato cuando se tiene el formato, o tiene muchas variables diferentes a stringify:
string formatString = "Hello {0}, today is {1:yyyy-MM-dd}";
Console.WriteLine(formatString, userName, Date.Today);
extensibilidad
Tu situación determinará qué es lo mejor.Usted me dice que es mejor cuando es necesario agregar un elemento entre nombre de usuario y Tiempo en el registro:
Console.WriteLine(
@"Error!
Username: " + userName + "
Time: " + time.ToString("HH:mm:ss") + "
Function: " + functionName + "
Action: " + actionName + "
status: " + status + "
---");
o
Console.WriteLine(@"Error!
Username: {0}
Time: {1}
Function: {2}
Action: {3}
status: {4}
---",
username, time.ToString("HH:mm:ss"), functionName, actionName, status);
Conclusión
yo elegiría la cadena formateada la mayor parte del tiempo ... Pero no dudaría en utilizar la concatenación cuando fuera más fácil.
realmente una respuesta completa, pero con un ejemplo más, la elegancia de la primero se vuelve mucho más claro, el segundo se vuelve bastante feo después de algunas variables. –
posible duplicado de [C# String output: format o concat?] (Http://stackoverflow.com/questions/16432/c-sharp-string-output-format-or-concat) – nawfal
Posible duplicado de [String output: format o concat en C#?] (https://stackoverflow.com/questions/16432/string-output-format-or-concat-in-c) – DaveInCaz