2009-11-23 409 views
13

He escrito un código en C# que excede el ancho de página, por lo que quiero que se rompa en la siguiente línea de acuerdo con mi formato. Traté de buscar mucho para obtener ese personaje para el salto de línea, pero no pude averiguarlo.Agregar salto de línea en C# Código detrás de la página

En VB.NET uso '_' para el salto de línea, del mismo modo ¿qué se usa en C#? Estoy tratando de romper una cuerda.

Gracias de antemano Shantanu Gupta

+2

Para dividir una instrucción en C# en varias líneas, no necesita caracteres especiales. Una instrucción C# puede estar en tantas líneas como desee y DEBE terminar con un carácter ';'. Entonces el compilador sigue leyendo hasta que encuentra uno. –

Respuesta

13

Opción A: concatenar varios cadena literal en una sola:

string myText = "Looking up into the night sky is looking into infinity" + 
    " - distance is incomprehensible and therefore meaningless."; 

Opción B: utilizar una sola cadena de varias literal:

string myText = @"Looking up into the night sky is looking into infinity 
- distance is incomprehensible and therefore meaningless."; 

Con la opción B, el carácter de nueva línea (s) será parte de la cadena guardada en la variable myText. Esto podría, o no, ser lo que quieres.

3

C# no tiene un carácter de salto de línea explícita. Sus instrucciones terminan con un punto y coma para que pueda abarcar sus declaraciones en muchas líneas. Estos son ambos el mismo:

public string GenerateString() 
{ 
    return "abc" + "def"; 
} 

public string GenerateString() 
{ 
    return 
     "abc" + 
     "def"; 
} 
+0

No responde completamente la pregunta. Cita: "Estoy tratando de romper una cuerda". –

+0

Buen punto, arreglado. –

+3

¡Utiliza Environment.NewLine en C#! – Dave

2

código C# se puede dividir entre líneas en casi cualquier constructo sintáctico y sin la necesidad de un '_' constructo estilo.

Por ejemplo

foo. 
Bar(
    42 
, "again"); 
5

Si estoy entendiendo esto correctamente, usted debe ser capaz de romper la cadena en subcadenas de lograr esto.

es decir .:

string s = "this is a really long string" + 
"and this is the rest of it"; 
30

En C# no hay carácter 'nueva línea' como existe en VB.NET. El final de una 'línea' lógica de código se denota con ';'. Si desea romper la línea de código en varias líneas, simplemente pulse el retorno de carro (o si desea agregarlo mediante programación (para código generado mediante programación) inserte 'Environment.NewLine' o '\ r \ n'.

Editar: En respuesta a su comentario: si desea dividir una cadena en varias líneas (es decir, mediante programación), debe insertar el carácter Environment.NewLine. Esto tendrá en cuenta el entorno para crear el final de línea. Por ejemplo, muchos entornos, incluido Unix/Linux, solo usan un carácter NewLine (\ n), pero Windows usa retorno de carro y avance de línea (\ r \ n). Para romper una cadena, debe usar:

string output = "Hello this is my string\r\nthat I want broken over multiple lines." 

Por supuesto, esto sólo sería bueno para Windows, así que antes de que me flameado para la práctica errónea de que realmente debe hacer esto:

string output = string.Format("Hello this is my string{0}that I want broken over multiple lines.", Environment.NewLine); 

O si lo desea romper a través de múltiples líneas en su IDE, puede hacer:

string output = "My string" 
       + "is split over" 
       + "multiple lines"; 
+1

Agregue que los literales de cadena multilínea también se pueden ingresar utilizando el carácter @ para forzar al compilador a respetar espacios en blanco dentro de cadenas, saltos de línea y caracteres especiales. (las comillas dobles y las barras diagonales son las únicas que deben escaparse) –

+0

\ r \ n funcionó para mí gracias –

0

chicos ... utiliza recursos para cadenas largas en código detrás !!

también ... no necesita un _ para los saltos de línea de código en C#. En VB, las líneas de código terminan con un carácter de nueva línea (o un ':'), usando el _ le diría al analizador que aún no ha llegado al final de la línea. La línea de código en C# termina con un ';' para que pueda usar nuevas líneas para formatear su código.

1
dt = abj.getDataTable(
"select bookrecord.userid,usermaster.userName, " 
               +" book.bookname,bookrecord.fromdate, " 
               +" bookrecord.todate,bookrecord.bookstatus " 
               +" from book,bookrecord,usermaster " 
               +" where bookrecord.bookid='"+ bookId +"' " 
               +" and usermaster.userId=bookrecord.userid " 
               +" and book.bookid='"+ bookId +"'"); 
6

Use el símbolo @ antes de comenzar la cadena. como

string s = @"this is a really 
long string 
and this is 
the rest of it"; 
5
result = "Minimum MarketData"+ Environment.NewLine 
      + "Refresh interval is 1"; 
+0

¡Funciona a la perfección! Gracias. – Baxter

0

cadenas son inmutables, así que usar

public string GenerateString() 
{ 
    return 
     "abc" + 
     "def"; 
} 

le hará perder rendimiento - cada uno de esos valores es una cadena literal que debe ser concatenado en tiempo de ejecución - una mala noticia si vuelve a utilizar el método/propiedad/lo que sea mucho ...

Almacenar sus literales de cadena en los recursos es una buena idea ...

public string GenerateString() 
{ 
    return Resources.MyString; 
} 

De esta manera es localizable y el código es ordenado (aunque el rendimiento es bastante terrible).

2

Todo lo que necesita hacer es agregar \ n o escribir en los archivos, vaya \ r \ n.

Ejemplos:

dicen que querías escribir pato (salto de línea) de la vaca esta es la forma en que lo haría Console.WriteLine ("pato \ n vaca");

Editar: Creo que no entendí la pregunta. Puede usar

@"duck 
cow".Replace("\r\n", "") 

como un salto de línea en el código, que produce \ r \ n que se usa Windows.

Cuestiones relacionadas