2013-05-19 12 views
9

Da ReSharper, so cheChe cos'è una stringa letterale?

var v = @"something"; 

rende v qualcosa che si chiama una stringa di Verbatim. Che cos'è questo e quale è uno scenario comune per usarlo?

+3

http://msdn.microsoft.com/en-us/library/vstudio/ms228362.aspx – SLaks

+2

I percorsi sono praticamente l'unica volta in cui utilizzo mai le stringhe letterali. La raccomandazione di Resharper di convertire * all * string letterals in stringhe letterali mi sembra sciocca. –

+1

@CodyGray AFAIK, ReSharper lo offre solo come strumento (non lo suggerisce) e solo se la stringa contiene una barra rovesciata, che per me ha più senso. – pascalhein

risposta

13

Vuol dire che i caratteri speciali non hanno bisogno di essere e scapato, dal momento che hai informato il compilatore di aspettarsi caratteri speciali e di ignorarli. Un caso d'uso comune potrebbe essere quello di specificare una stringa di connessione:

string sqlServer = @"SERVER01\SQL"; 

Ciò è perfettamente valido, invece che in un uso normale in cui il backslash sarebbe considerato un carattere di escape.

14

In una stringa letterale, le sequenze di escape (come "\n" per newline) verranno ignorate. Questo ti aiuta a digitare stringhe contenenti backslash.

La stringa è anche permesso di estendersi su più righe, ad esempio:

var s = @" 
line1 
line2"; 

La stringa apparirà nello stesso modo che è stata digitata nel codice sorgente, con interruzioni di riga, in modo da non avere preoccuparsi di trattini, a capo ecc

per usare le virgolette all'interno di una parola per parola letterale, è semplicemente raddoppiare:

@"This is a string with ""quotes""." 
+0

Grazie per le spiegazioni extra. – Marc

Problemi correlati