2011-05-26 11 views

Respuesta

48

@ no está relacionado con ningún método.

Esto significa que no es necesario para escapar caracteres especiales en la cadena siguiente en el símbolo:

@"c:\temp" 

es igual a

"c:\\temp" 

Dicha cadena se llama 'textualmente' o @ -citado. Ver MSDN.

4

Denota una literal litera literal, y le permite usar ciertos caracteres que normalmente tienen un significado especial, por ejemplo \, que normalmente es un carácter de escape, y nuevas líneas. Por esta razón, es muy útil cuando se trata de rutas de Windows.

Sin utilizar @, la primera línea de su ejemplo, tendría que ser:

string part1 = "c:\\temp"; 

Más información here.

1

El @ simplemente indica una forma diferente de especificar una cadena de modo que no tenga que escapar caracteres. La única salvedad es que las comillas dobles deben ser "" para representar un único"

12

Como se indica en C# Language Specification 4.0:.

2.4.4.5 Los literales de cadena

C# soporta dos formas de cadena literales : literales de cadena regulares y literales literales de cadena . Un literal de cadena regular consiste en cero o más caracteres encerrados en dobles comillas, como en "hola", y puede incluir ambos sencillos para escapar ences (como \ t para el carácter de tabulación) y secuencias hexadecimales y de escape Unicode . Una cadena litera literal literal consta de un carácter @ seguido de un carácter de comillas dobles, cero o más caracteres y un carácter de comillas dobles de cierre . Un ejemplo simple es @ "hello". En una cadena textual literal , los caracteres entre los delimitadores se interpretan literalmente, con la única excepción de que es quote-escape-sequence.En particular, secuencias de escape simples y secuencias hexadecimales y de escape Unicode no se procesan en literales literales de cadena .

14

Como otros han dicho que es de una sola manera para que no tenga que escapar caracteres especiales y sea muy útil para especificar rutas de archivos.

string s1 [email protected]"C:\MyFolder\Blue.jpg"; 

Un mayor uso es cuando se tienen grandes cadenas y desea que se muestre a través de múltiples líneas en lugar de una larga.

string s2 [email protected]"This could be very large string something like a Select query 
which you would want to be shown spanning across multiple lines 
rather than scrolling to the right and see what it all reads up";