salto que linea detectar concatenar c# carriage-return linefeed

c# - que - salto de linea/n



Retorno de carro y avance de línea... ¿Se requieren ambos en C#? (3)

Cuando inserto un nuevo carácter de línea en una cadena, generalmente he hecho esto:

str = "First line/nSecond line";

En C #, ¿es esta la práctica estándar? ¿Debo incluir también el carácter ''retorno de carro'' / r ''? ¿Hay alguna diferencia entre los siguientes, y si es así, cuáles son?

str = "First line/nSecond line"; str = "First line/r/nSecond line";

Si el uso de ''retorno de carro'' y ''avance de línea'' es una práctica estándar, ¿existe un orden específico y por qué?

Nota: Leí algunas otras publicaciones en SO, pero no encontré una respuesta específica para .NET / C #.

Edición: después de probar una pequeña aplicación, no vi ninguna diferencia entre ''/ n'' y ''/ n / r'' o ''/ r / n''.


Depende de donde estés mostrando el texto. En la consola o en un cuadro de texto, por ejemplo, / n será suficiente. En un RichTextBox creo que necesita ambos.


Un retorno de carro mueve el cursor al principio de la línea actual. Una línea nueva /n provoca una caída a la línea siguiente y posiblemente al principio de la línea siguiente; Esa es la parte dependiente de la plataforma que Alexei señala arriba (en un sistema * nix /n le brinda tanto un retorno de carro como una nueva línea, en Windows no lo hace)

Lo que uses depende de lo que estés tratando de hacer. Si quisiera hacer una pequeña cosa giratoria en una consola, haría str = "|/r//r-/r///r"; por ejemplo.


System.Environment.NewLine es la constante que está buscando - http://msdn.microsoft.com/en-us/library/system.environment.newline.aspx que proporcionará una combinación específica para el entorno que la mayoría de los programas en un sistema operativo determinado considerarán "siguiente línea de texto".

En la práctica, la mayoría de las herramientas de texto tratan todas las variaciones que incluyen /n como "nueva línea" y usted puede usarla en su texto "foo/nbar" . Especialmente si está intentando construir cadenas de formato multilínea como $"V1 = {value1}/nV2 = {value2}/n" . Si está NewLine texto con concatenación de cadenas, considere utilizar NewLine . En cualquier caso, asegúrese de que las herramientas que está utilizando comprendan la salida de la manera que desea y puede que necesite, por ejemplo, utilice siempre /r/n independientemente de la plataforma si el editor de su elección no puede abrir correctamente los archivos.

Tenga en cuenta que los métodos de WriteLine usan NewLine por lo que si planea escribir texto con uno de estos métodos, evite usar solo /n ya que el texto resultante puede contener una combinación de /r/n y solo /n que puede confundir algunas herramientas y definitivamente no se ve bien.

Para antecedentes históricos ver Diferencia entre / ny / r?