Considérese la siguiente línea:¿Qué significa `@` al comienzo de una cadena en C#?
readonly private string TARGET_BTN_IMG_URL = @"\\ad1-sunglim\Test\";
En esta línea, ¿por qué no @ necesita ser conectado?
Considérese la siguiente línea:¿Qué significa `@` al comienzo de una cadena en C#?
readonly private string TARGET_BTN_IMG_URL = @"\\ad1-sunglim\Test\";
En esta línea, ¿por qué no @ necesita ser conectado?
Indica una cadena literal, en la que el carácter '\' no indica una secuencia de escape.
"Se puede duplicar cada barra invertida con el mismo efecto:' TARGET_BTN_IMG_URL = "\\\\ ad1-sunglim \\ Test \\"; '" –
Sí, pero no es tan fácil para leer, y esta es la razón por la cual existe esta opción. –
gracias por una respuesta clara y simple! –
porque la cadena contiene la secuencia de escape "\". para decirle al compilador que no trate "\" como secuencia de escape, tiene que usar "@".
@ le dice a C# que lo trate como una cadena literal verbatim string literal. Por ejemplo:
string s = "C:\Windows\Myfile.txt";
es un error porque \W
y \M
no son secuencias de escape válidos. Usted tiene que escribir de esta manera en su lugar:
string s = "C:\\Windows\\Myfile.txt";
para hacerlo más claro, se puede utilizar una cadena literal, el cual no reconoce \ como un carácter especial. Por lo tanto:
string s = @"C:\Windows\Myfile.txt";
está perfectamente bien.
EDIT: MSDN ofrece estos ejemplos:
string a = "hello, world"; // hello, world
string b = @"hello, world"; // hello, world
string c = "hello \t world"; // hello world
string d = @"hello \t world"; // hello \t world
string e = "Joe said \"Hello\" to me"; // Joe said "Hello" to me
string f = @"Joe said ""Hello"" to me"; // Joe said "Hello" to me
string g = "\\\\server\\share\\file.txt"; // \\server\share\file.txt
string h = @"\\server\share\file.txt"; // \\server\share\file.txt
string i = "one\r\ntwo\r\nthree";
string j = @"one
two
three";
Merece la pena señalar el caso específico de querer poner una comilla '" 'en una cadena literal. Esto es posible usando comillas dobles' "" '. Esto se puede ver en' @ "Joe dijo" "Hola" "a me "' ejemplo anterior). –
Los literales de cadena también pueden abarcar varias líneas ... – Noldorin
Offtopic: ¿Dónde se originó ese prefijo "literal"? – OscarRyz
lo de mi pobre Inglés! –
En javascript, eso sería un error: 'x = @" abc ";' – nickf
Limpió un poco para usted :) * Se ejecuta para enviar la respuesta –