2010-10-07 3 views
5

Eventuali duplicati:
what does “@” means in c#Cosa significa il simbolo @ nel seguente modo: Class.Field = @ "il tuo testo qui"; -

Che cosa significa il simbolo @ seguito:

Class.Field = @ "il testo qui";

mi sono imbattuto in questo in un pezzo di codice, il compilatore non sembra per lamentarsi ... Ho cercato in giro senza alcun risultato ...

Cosa l'@ significa?

+0

Troverete maggiori informazioni qui:. Http://msdn.microsoft.com/en-us/ library/362314fe.aspx – codaddict

+5

Per il tuo futuro riferimento il nome di questa funzione è "letterale stringa letterale" .Questo dovrebbe aiutarti a fare ricerche sul Web per questo, e così via. –

risposta

9

Indica un letterale stringa letterale. Si può usare in modo fughe non sono trattati come tali:

string path = "C:\\Documents and Settings\\UserName\\My Documents"; 

diventa:

string path = @"C:\Documents and Settings\UserName\My Documents"; 
+3

In realtà, entrambi sono stringhe letterali. firmare è un * letterale letter letter *

+0

'+ 1' Per picchiarmi di ~ 35 secondi. – jjnguy

+0

@Nick - Corretto. –

0

E 'una breve mano in modo che \ non è necessario per sfuggire alla barra rovesciata.

Nelle espressioni regolari, è molto utile perché Regex si basa molto sul carattere backslash. Quando si usa il segno @, l'unico carattere che è necessario sfuggire è la doppia citazione, ed è sfuggito con una seconda citazione doppia (un al VB). Tutti gli altri personaggi sono letterali.

(percorsi di directory sono un'altra forma di stringa che beneficia della @)

Nel tuo esempio, la @ non è necessaria.

0

Indica al compilatore di non considerare il carattere barra rovesciata come una sequenza di escape.

4

si può fare qualcosa di simile a

@"C:\temp\testfile.txt" 

Senza @ si avrebbe bisogno di fare

"C:\\temp\\testfile.txt" 

Inoltre aiuta a lavorare con altre stringhe più complicati che dovrebbero rappresentare XML, per esempio.

solo una cosa che si avrebbe bisogno di doppio-scrittura è "in sé

Quindi, @"Tom said ""Hello!""";