Возможный дубликат:
когда использовать @в С#?
F.e. string sqlSelect = @"SELECT * FROM Sales".
Возможный дубликат:
когда использовать @в С#?
F.e. string sqlSelect = @"SELECT * FROM Sales".
Это означает интерпретацию следующей строки как литерала. Значение \
в строке будет фактически "\"
на выходе, вместо того, чтобы помещать "\\"
в значение буквенного символа
Перед строкой он допускает различные правила форматирования строк. Вы не можете использовать обратную косую черту для указания специальных символов и "" (двойные кавычки становятся кавычками). Я считаю, что этот формат очень полезен для регулярных выражений
Пример
Console.WriteLine(@"\n""\/a"); // outputs \n"\/a
Console.WriteLine("\\n\"\"\\/a"); // outputs \n"\/a
Вы также можете увидеть символ @перед переменной. В этом случае он позволяет использовать специальные ключевые слова С# в качестве переменных.
Пример:
var @switch = 1;
var @if = "test";
Это означает, что в такой строке нет необходимости выводить символы.
Итак, если вы хотите написать путь для c:\Windows, вы можете записать его как
string path="c:\\Windows";
//Примечание escape файл '\'
ИЛИ
string [email protected]"c:\Windows";
//'\' не нужно экранировать
Существует два типа строковых литералов, регулярных и дословных. Символ @делает это дословным строковым литералом.
Вербатные строковые литералы начинаются с @ и также заключены в двойные кавычки. Например:
@"good morning" // a string literal
Понял, посмотрим на последние несколько строк над примером для получения дополнительной информации. http://msdn.microsoft.com/en-us/library/362314fe.aspx
В C и С++ строка содержит некоторые специальные символы, называемые escape-символами. например, "\", "&" и " он сам является escape-символом!
В самом обычном режиме вы можете распечатать инструкцию типа
Нэнси Саид Hello World! и улыбнулся
вам нужно было установить строку следующим образом
string str = "Nancy said Hello World! \& smiled.";
Но люди в Microsoft сделали новую классную функцию в компиляторе С#, чтобы вы могли избежать головной боли обработки escape-символов, добавив @перед любой строкой, и компилятор будет обрабатывать все escape-символы для вас сам. В последнем примере вы можете иметь это на С#, например следующее:
string str = @"Nancy said Hello World! & smiled.";
Он позволяет вам иметь строку с разделителем\в ней.
@ "C:\A\b\c\d\e\f" является законным.
Используется для строкового литерала. Он отмечает строку в меток quote (") как значение без применения какой-либо интерпретации символов в этой строке.