2010-03-02 25 views
15

Duplicar posibles:
when to use @ in c# ?lo que hace "@" significa en C#

F. E. string sqlSelect = @"SELECT * FROM Sales".

+2

Duplicar - http://stackoverflow.com/questions/1057926/when-to-use-in-c – ChrisF

+4

Dato curioso: también puede utilizar el prefijo literal para distinguir un identificador de una palabra clave. 'Int32 new;' no es válido, pero 'Int32 @new;' no lo es. – HackedByChinese

Respuesta

26

Significa interpretar la siguiente cadena como literal. Es decir, \ en la cadena será realmente "\" en la salida, en lugar de tener que poner "\\" para significar el carácter literal

+2

Tienes tus barras mezcladas. De lo contrario, me gusta más tu respuesta. –

+0

@Spencer Ruport: no pude entender eso, ¿qué tan mezclado? – Sarfraz

+0

completamente. Debe ser una barra invertida, no una simple barra –

0

Le permite tener una cadena con un \ delimitador en ella.

@ "C: \ A \ b \ c \ d \ e \ f" es legal.

4

Significa que no hay necesidad de escapar caracteres en una cadena.

lo tanto, si desea escribir la ruta de acceso C: \ Windows, puede escribir como

string path="c:\\Windows"; // Nota escapó '\'

O

string [email protected]"c:\Windows"; // '\' no necesita ser escapado

+0

Estoy buscando realmente difícil pero no puedo ver el doble \ en su primer ejemplo ... – Rory

+0

Solucionado. Parece un problema de formato. – logicnp

0

Utilizado para cadena literal. Marca la cadena dentro de la cita (") marcas como el valor sin aplicar ninguna interpretación de los símbolos de esa cadena

2

literales de cadena Verbatim comienzan con @ y también están encerrados en dobles entre comillas, por ejemplo..:

@"good morning" // a string literal 

Nicked de, echar un vistazo a las últimas líneas anteriores el ejemplo para más información. http://msdn.microsoft.com/en-us/library/362314fe.aspx

+0

también https://msdn.microsoft.com/en-us/library/ms228362.aspx#Anchor_3 – Lu55

4

Hay dos tipos de literales de cadena, regulares y literales. El símbolo @ lo convierte en una literal litera literal.

MSDN: String literals (C#)

18

Antes de cadena Permite diferentes reglas cadena de formateo. No puede usar la barra invertida para especificar símbolos especiales y "" (las comillas dobles se convierten en comillas). Me parece que este formato muy útil para expresiones regulares

Ejemplo

Console.WriteLine(@"\n""\/a"); // outputs \n"\/a 
Console.WriteLine("\\n\"\"\\/a"); // outputs \n"\/a 

Es posible que también se ve el símbolo @ antes variable. En tal caso, permite usar palabras clave especiales de C# como variables.

Ejemplo:

var @switch = 1; 
var @if = "test"; 
1

En C y C++, la cadena tiene algunos caracteres especiales llamados "caracteres de escape". por ejemplo "\", "&" y " ¡es un personaje de escape!

En el camino muy normal que le permite imprimir una declaración como

Nancy Said Hello World! & sonreído

había que ajustar su cadena como próximo

string str = "Nancy said Hello World! \& smiled."; 

Pero la gente en Microsoft hizo una nueva característica fresca en el compilador de C# para que pueda escapar el dolor de cabeza de manejar los caracteres de escape mediante la adición @ antes de cualquier cadena, y el compilador manejará todos los caracteres de escape por ti mismo. Para el último ejemplo, usted puede tener esto en C# como el siguiente:

string str = @"Nancy said Hello World! & smiled."; 
+1

Estoy de acuerdo con la delimitación, pero no lo creo & es un carácter que requiere delimitar en C# – MPritchard

Cuestiones relacionadas