2010-10-07 15 views
5

Duplicar posible:
what does “@” means in c#¿Qué significa el signo @ en lo siguiente - Class.Field = @ "su texto aquí"; -

¿Qué significa el símbolo @ en lo siguiente:

Class.Field = @ "su texto aquí";

me encontré con esto en una pieza de código, no parece que el compilador para quejarse ... He buscado en todo fue en vano ...

¿Qué quiere decir el @?

+0

Encontrará más información aquí:. Http://msdn.microsoft.com/en-us/ library/362314fe.aspx – codaddict

+5

Para su referencia futura, el nombre de esta característica es "literales literales verbatim". Eso debería ayudarlo a realizar búsquedas web, etc. –

Respuesta

9

Indica literal literal literal de cadena. Se puede utilizar de manera escapes no son tratados como tales:

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

se convierte en:

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

En realidad, ambos son literales de cadenas. firmar es * literal * cadena literal.

+0

'+ 1' Por vencerme por ~ 35 segundos. – jjnguy

+0

@Nick - Corregido. –

0

Es un corto mano de modo que \ no es necesaria para escapar de la barra invertida.

En expresiones regulares, es muy útil porque Regex se basa tanto en la barra invertida. Al usar el signo @, el único carácter que necesita para escapar es la comilla doble, y se escapa con una segunda comilla doble (un al VB). Todos los demás personajes son literales.

(Rutas de Directorio son otra forma de cadena que se beneficia de la @)

En el ejemplo, el @ es innecesaria.

0

Le dice al compilador que no considere la barra invertida como una secuencia de escape.

4

Usted puede hacer algo como

@"C:\temp\testfile.txt" 

Sin @ que tendría que hacer

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

También ayuda a trabajar con otras cadenas más complicadas que deben representar XML, por ejemplo.

Sólo hay una cosa que usted necesita para hacer doble escritura es "sí

Así, @"Tom said ""Hello!""";

Cuestiones relacionadas