Possibile duplicato:
Qual è il @ davanti a una stringa per .NET?
Ho trovato questo in un libro di studio C #
DirectoryInfo dir = new DirectoryInfo(key.Key.ToString() + @":\");
Il libro tuttavia non spiegava a cosa serviva il simbolo ‘@’. Ho provato a cercare gli operatori MSDN C # ma non è elencato lì. Posso indovinare che permette allo sviluppatore di non dover uscire da una “\” o non permettere di avere sequenze di escape?
A cosa serve e perché dovrei usare @":\"
invece di ":\\"
?
Grazie per l’aiuto
Modifica: vedere il commento qui sotto per una domanda simile
Significa interpretare la stringa letteralmente (ovvero, non puoi sfuggire a nessun carattere all’interno della stringa se usi il prefisso @). Migliora la leggibilità nei casi in cui può essere utilizzato.
Ad esempio, se si stesse lavorando con un percorso UNC, questo:
@"\\servername\share\folder"
è più bello di questo:
"\\\\servername\\share\\folder"
Significa anche che puoi usare parole riservate come nomi di variabili
dì che vuoi una class chiamata class, dato che la class è una parola riservata, puoi invece chiamare la tua class:
IList @class = new List ();
La prefissazione della stringa con un @ indica che deve essere trattato come un valore letterale, ossia senza escape.
Ad esempio se la tua stringa contiene un percorso, in genere lo farai:
string path = "c:\\mypath\\to\\myfile.txt";
Il @ ti permette di fare questo:
string path = @"c:\mypath\to\myfile.txt";
Notare la mancanza di doppie barre (fuggire)
Come nota a margine, devi anche ricordare che “escaping” significa “usare il back-barra come indicatore per caratteri speciali”. Puoi mettere un capo di linea in una stringa facendo così, ad esempio:
String foo = "Hello\ There";
A cosa serve e perché dovrei usare @ “: \” invece di “: \”?
Perché quando hai una lunga puntura con molti \
non hai bisogno di sfuggirli tutti.