interpolacion - string methods c#
La mejor forma de romper cadenas largas en el código fuente de C# (9)
Está hecho en tiempo de compilación. Eso es exactamente equivalente a "string1string2string3".
Supongamos que tiene:
string x = "string1string2string3"
string y = "string1" + "string2" + "string3"
El compilador realizará una internación adecuada de modo que xey se refieran a los mismos objetos.
EDITAR: Se habla mucho de StringBuilder
en las respuestas y los comentarios. Muchos desarrolladores parecen creer que la concatenación de cadenas siempre debe hacerse con StringBuilder
. Eso es una generalización excesiva: vale la pena entender por qué StringBuilder
es bueno en algunas situaciones, y no en otras .
Me pregunto cuál es la "mejor práctica" para romper cadenas largas en el código fuente de C #. Es esta cadena
"string1"+
"string2"+
"string3"
concatenado durante la compilación o en tiempo de ejecución?
La concatenación se realiza en tiempo de compilación, por lo que no hay sobrecarga de tiempo de ejecución.
Si el espacio en blanco no es importante, entonces puede usar el carácter @ escape para escribir cadenas de varias líneas en su código. Esto es útil si tiene una consulta en su código, por ejemplo:
string query = @"SELECT whatever
FROM tableName
WHERE column = 1";
Esto le dará una cadena con saltos de línea y pestañas, pero para una consulta que no importa.
StringBuilder es una buena forma de hacerlo si tienes muchas (más de unas cuatro) cadenas para concatenar. Es mas rapido.
El uso de String.Concat en su ejemplo anterior se realiza en tiempo de compilación. Como son cadenas literales, están optimizados por el compilador.
Si, sin embargo, usa variables:
string a = "string1";
string b = "string2";
string c = a + b;
Esto se hace en tiempo de ejecución.
StringBuilder será su enfoque más rápido si está usando cualquier cantidad de cadenas.
http://dotnetperls.com/Content/StringBuilder-1.aspx
Si solo está haciendo una cadena (5 o menos es una buena regla), la velocidad no importará qué tipo de concatenación esté usando.
Su ejemplo se concatenará en el momento de la compilación. Todas las cadenas en línea y las variables de cadena const se concatenan en tiempo de compilación.
Algo a tener en cuenta es que incluir cadenas de solo lectura retrasará la concatenación al tiempo de ejecución. string.Empty y Environment.NewLine son ambas variables de cadena de solo lectura.
realmente depende de lo que necesitas En general, si necesita concat cadenas, el mejor rendimiento en tiempo de ejecución se logrará mediante el uso de StringBuilder. Si hace referencia en el código fuente a algo como var str = "String1" + "String2", se convertirá en cadena str = "String1String2" en la compilación. En este caso, no tiene sobrecarga de concatenación
Hay alguna forma de hacerlo. Mi beneficio utiliza un método de cuerda de C #. Muestra uno:
string s = string.Format ("{0} {1} {0}", "Hola", "Por"); el resultado es s = "Hello By Hello";
¿No puedes usar un StringBuilder
?