Esiste un modo decente per dichiarare una stringa lunga singola riga in C#, in modo che non sia impossibile dichiarare e/o visualizzare la stringa in un editor?Dichiarazione di una stringa di linea singola looooong in C#
Le opzioni io sappia sono:
1: Lasciar correre. Questo è un problema perché la tua stringa si dirige a destra dello schermo, facendo in modo che uno sviluppatore che legge il messaggio debba scansionare e leggere.
string s = "this is my really long string. this is my really long string. this is my really long string. this is my really long string. this is my really long string. this is my really long string. this is my really long string. this is my really long string. ";
2: @ + newlines. Questo sembra bello nel codice, ma introduce una nuova riga nella stringa. Inoltre, se vuoi che appaia bello nel codice, non solo ottieni le nuove linee, ma ottieni anche spazi scomodi all'inizio di ogni riga della stringa.
string s = @"this is my really long string. this is my long string.
this line will be indented way too much in the UI.
This line looks silly in code. All of them suffer from newlines in the UI.";
3: "" + ...
Questo funziona bene, ma è super frustrante digitare. Se devo aggiungere da qualche parte il testo di una riga, devo aggiornare tutti i tipi di + e spostare tutto il testo.
string s = "this is my really long string. this is my long string. " +
"this will actually show up properly in the UI and looks " +
"pretty good in the editor, but is just a pain to type out " +
"and maintain";
4: string.format or string.concat
. Sostanzialmente come sopra, ma senza i segni più. Ha gli stessi vantaggi e svantaggi.
Non c'è davvero un modo per farlo bene?
La concatenazione di stringhe letterali è gestita dal compilatore C#, quindi non c'è zero sovraccarico in fase di esecuzione per l'utilizzo di una stringa dichiarata come '" x "+" y "+" Z "+ ...' –
Ah, @ 280Z28 è ovviamente corretto! Ho aggiunto alcuni chiarimenti su quando utilizzare l'approccio StringBuilder (quando hai variabili mescolate con le tue ltierali). –