En .NET puedo proporcionar ambos \r
o \n
literales de cadena, pero hay una manera de insertar algo como un carácter especial de "nueva línea" como Environment.NewLine
propiedad estática.
c#
.net
line-breaks
Captain Comic
fuente
fuente
Respuestas:
Bueno, las opciones simples son:
string.Format
:Concatenación de cadenas:
Interpolación de cadenas (en C # 6 y superior):
También puede usar \ n en todas partes y reemplazar:
Tenga en cuenta que no puede convertir esto en una cadena constante , porque el valor de
Environment.NewLine
solo estará disponible en el momento de la ejecución.fuente
Environment.NewLine
? Por el contrario, es una buena práctica usarloSi desea una cadena constante que contenga Environment.NewLine, puede hacer algo como esto:
EDITAR
Como esto está en una cadena constante, se realiza en tiempo de compilación, por lo tanto, es la interpretación del compilador de una nueva línea. Parece que no puedo encontrar una referencia que explique este comportamiento, pero puedo demostrar que funciona según lo previsto. Compilé este código en Windows y Ubuntu (con Mono), luego lo desarme y estos son los resultados:
Como puede ver, en Windows las nuevas líneas se interpretan como \ r \ n y en Ubuntu como \ n
fuente
fuente
first + Environment.NewLine + second
cuál es más eficiente y (IMO) más fácil de leer?String.Format
produciría 1 cadena a la vez (pero internamente es un poco lento debido a las concatenaciones específicas de la cultura, etc.), mientras que la concatenación de cadenas - 1 resulta + 1 temporal, ¿verdad?String.Concatenate
, que construye directamente una sola cadena de salida (IIRC, si las cadenas son literales, la concatenación se realiza en el compilador."a"+b+"c"+d
, etc.) por rendimiento es igual a una sola. O simplemente convertido aString.Concatenate(a,b,c,d,etc)
, ¿verdad?string.Format
en el comentario. La concatenación de cadenas no producirá ninguna cadena temporal, porque el compilador llamarástring.Concat(first, Environment.NewLine, second)
.Una forma más de ubicación conveniente de Environment.NewLine en formato de cadena. La idea es crear un método de extensión de cadena que formatee la cadena como de costumbre, pero que también reemplace {nl} en texto con Environment.NewLine
Uso
Código
Nota
Si desea que ReSharper resalte sus parámetros, agregue un atributo al método anterior
[StringFormatMethod ("formato")]
Obviamente, esta implementación es menos eficiente que solo String.
Tal vez uno, que esté interesado en esta pregunta, también esté interesado en la siguiente: formato de cadena con nombre en C #
fuente
fuente
fuente
Environment.NewLine
- ver las otras respuestas.const string
las versiones más recientes de .net le permiten usar $ delante del literal que le permite usar variables dentro de la siguiente manera:
fuente
Si realmente quieres la cadena New Line como una constante, entonces puedes hacer esto:
El usuario de la palabra clave de solo lectura en C # significa que esta variable solo se puede asignar una vez. Puede encontrar la documentación aquí . Permite la declaración de una variable constante cuyo valor no se conoce hasta el momento de la ejecución.
fuente
Me gusta más el "camino pitónico"
fuente
Si está trabajando con una aplicación web, puede probar esto.
fuente
Si entiendo la pregunta: Pareja
"\r\n"
para obtener esa nueva línea a continuación en atextbox
. Mi ejemplo funcionó:Una respuesta típica podría estar
s1
s2
en eltext box
uso del estilo de tipo definido.fuente
Aquí, Environment.NewLine no funciona.
Pongo un " < br / > " en una cadena y trabajado.
Ex:
fuente