Si chiama verbatim string literal, e utilizza il prefisso @
senza il prefisso, è ancora una stringa letterale.. - è una stringa regolare .
(Alcune persone pensano erroneamente che il termine "stringa letterale" è valida solo per Verbatim stringhe letterali, ma è più generale di quello)
Verbatim stringhe letterali sono utili per:.
- stringhe multilinea
- stringhe che contengono naturalmente backslash (come ad come percorsi di Windows e le espressioni regolari)
Si noti che questo solo fa la differenza in fase di compilazione. In altre parole, queste due affermazioni sono precisamente equivalenti:
string x = "foo\\bar"; // Regular string literal
string x = @"foo\bar"; // Verbatim string literal
Verbatim letterali stringa sono ancora internati nello stesso modo come normali stringhe, ancora riferimento a istanze di System.String
ecc
Dalla sezione 2.4 .4.5 della C# 4.0 specification:
Una stringa letterale regolare consiste di zero o più caratteri racchiusi tra virgolette, come in "ciao", e possono includere sia semplici sequenze di escape (ad esempio come \ t per il carattere di tabulazione) e le sequenze di escape esadecimali e Unicode.
Un letterale stringa letterale è costituito da un carattere @ seguito da un carattere a virgolette, zero o più caratteri e un carattere di virgoletta doppia di chiusura. Un semplice esempio è @ "ciao". In una letterale stringa letterale, i caratteri tra i delimitatori sono interpretati letteralmente, l'unica eccezione è una sequenza-escape-sequence. In particolare, le sequenze di escape semplici e le sequenze di escape esadecimali e Unicode non vengono elaborate in letterali stringa letterali. Una stringa letterale letterale può estendersi su più righe.
noti che @ può essere utilizzato anche come un prefisso per consentire di utilizzare parole chiave come identificatori:
int class = 10; // Invalid
int @class = 10; // Valid
Questo è raramente utile, ma a volte può essere necessario se si avete utilizzare un identificatore particolare (Il class
parola chiave può essere utile per una proprietà di tipo anonimo in ASP.NET MVC, per esempio.)
grazie ragazzi. Ho dato a tutti i punti, ma devo scegliere la risposta migliore ed è la prima risposta. Grazie ancora per tutto il vostro aiuto. – Yves
In questo caso, @Kombucha, assicurati di contrassegnarlo come risposta accettata. :) –
L'ho fatto :) Avevo bisogno di aspettare 8 minuti prima di poter persino 'spuntare' il segno di spunta. Ho appena fatto :) – Yves