En C# es posible concatenar cadenas de varias maneras diferentes:¿Cuándo debería usar String.Format o String.Concat en lugar del operador de concatenación?
Usando el operador de concatenación:
var newString = "The answer is '" + value + "'.";
Usando String.Format
:
var newString = String.Format("The answer is '{0}'.", value);
Usando String.Concat
:
var newString = String.Concat("The answer is '", value, "'.");
¿Cuáles son las ventajas/desventajas de cada uno de estos métodos? ¿Cuándo debería preferir uno sobre los demás?
La pregunta surge debido a un debate entre los desarrolladores. Un nunca usa String.Format
para la concatenación: argumenta que esto es para formatear cadenas, no para concatenación, y que siempre es ilegible porque los elementos en la cadena se expresan en el orden incorrecto. El otro frecuentemente usa String.Format
para la concatenación, porque cree que hace que el código sea más fácil de leer, especialmente cuando hay varios conjuntos de comillas involucrados. Ambos desarrolladores también usan el operador de concatenación y String.Builder también.
+1 para contrarrestar el downvote inmerecido. – LukeH
Sí, buen enlace +1. – StuartLC
El uso de la concatenación de cadenas a menudo produciría muchos objetos pequeños en la memoria, lo que podría afectar negativamente el rendimiento de la recolección de elementos no utilizados. Es muy difícil medir dicho efecto mediante la prueba de su enlace, pero podría ser un problema de rendimiento muy grande para sistemas grandes con requisitos de rendimiento exigentes. –