2009-11-23 6 views
13

Ho scritto un codice in C#, che sta superando la larghezza della pagina, quindi voglio che sia suddiviso in riga successiva secondo il mio formattazione. Ho provato a cercare molto per ottenere quel personaggio per l'interruzione di riga, ma non sono stato in grado di scoprirlo.L'aggiunta di interruzione di linea in C# codice dietro la pagina

In VB.NET io uso '_' per interruzione di linea, allo stesso modo quello che viene utilizzato in C#? Sto provando a rompere una stringa.

Grazie in anticipo Shantanu Gupta

+2

Per suddividere un'istruzione in C# su più righe, non è necessario alcun carattere speciale. Un'istruzione C# può essere su tutte le linee che vuoi e DEVE terminare con un carattere '; Quindi il compilatore continua a leggere finché non ne trova uno. –

risposta

13

Opzione A: concatenare diversi stringa letterale in uno:

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

Opzione B: utilizzare una singola stringa multilinea letterale:

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

Con l'opzione B, il carattere di nuova riga (s) farà parte della stringa salvata nella variabile myText. Questo potrebbe, o potrebbe non essere, quello che vuoi.

3

C# non ha un carattere esplicito interruzione di linea. Le tue affermazioni terminano con un punto e virgola in modo da poter estendere le tue dichiarazioni su più righe. Questi sono entrambi lo stesso:

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

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

Non risponde completamente alla domanda. Citazione: "Sto cercando di rompere una stringa". –

+0

Buon punto, riparato. –

+3

Usa Environment.NewLine in C#! – Dave

2

codice C# può essere suddiviso tra le linee su praticamente qualsiasi costrutto syntatic, senza la necessità di un '_' costrutto stile.

Per esempio

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

Se io sto capendo correttamente, si dovrebbe essere in grado di rompere la stringa in sottostringhe per raggiungere questo obiettivo.

cioè .:

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

In C# non c'è alcun carattere 'nuova linea' che ci sia in VB.NET. La fine di una "linea" logica di codice è denotata da un ';'. Se desideri interrompere la linea di codice su più righe, premi il ritorno a capo (o se vuoi aggiungerlo a livello di codice (per codice generato a livello di codice) inserisci "Environment.NewLine" o "\ r \ n".

Edit: in risposta al tuo commento:. Se si desidera rompere una stringa su più linee (ad esempio a livello di codice), si dovrebbe inserire il carattere Environment.NewLine Questo richiederà l'ambiente in considerazione al fine di creare la linea di fine. Ad esempio, molti ambienti, incluso Unix/Linux usano solo un carattere NewLine (\ n), ma Windows utilizza sia il ritorno a capo che il feed di riga (\ r \ n). Quindi per rompere una stringa useresti:

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

Naturalmente, questo sarebbe solo un bene per Windows, quindi prima vengo in malo modo perché la pratica non corretta si dovrebbe effettivamente fare questo:

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

Oppure, se si vuole spezzare su più righe nel vostro IDE, si dovrebbe fare:

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

Si prega di aggiungere che i valori letterali di stringa multilinea possono anche essere immessi utilizzando il carattere @ per forzare il compilatore a rispettare gli spazi, stringhe e caratteri speciali all'interno della stringa. (le virgolette doppie e le barre posteriori sono le uniche che devono essere sfuggite) –

+0

\ r \ n ha funzionato per me grazie –

0

ragazzi .. utilizzare le risorse per le stringhe lunghe nel codice dietro !!

anche .. non occorre un _ per le interruzioni di codeline in C#. In VB le code terminano con un carattere di nuova riga (o un ':'), usando il _ dire al parser che non ha ancora raggiunto la fine della linea. La codeline in C# termina con un ';' quindi puoi usare le nuove righe per formattare il tuo codice.

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

Utilizzare il simbolo @ prima di iniziare la stringa. come

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

Funziona perfettamente! Grazie. – Baxter

0

stringhe sono immutabili, in modo da utilizzare

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

rallenta voi prestazioni - ciascuno di questi valori è una stringa letterale che deve essere concatenati in fase di esecuzione - una cattiva notizia se si riutilizza il metodo/proprietà/qualunque altro ...

Memorizza i tuoi valori letterali di stringa in risorse è una buona idea ...

In questo modo è localizzabile e il codice è in ordine (anche se le prestazioni sono piuttosto terribili).

2

Tutto ciò che devi fare è aggiungere \ n o scrivere sui file go \ r \ n.

Esempi:

detto che volevi scrivere anatra (interruzione di riga) mucca questo è come lo faresti Console.WriteLine ("anatra \ n vacca");

Edit: Penso che non ho capito la domanda. È possibile utilizzare

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

come interruzione di riga nel codice, che produce \ r \ n che viene utilizzato Windows.

Problemi correlati