Подтвердить что ты не робот

Что означает "@" в С#

Возможный дубликат:
когда использовать @в С#?

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

4b9b3361

Ответ 1

Это означает интерпретацию следующей строки как литерала. Значение \ в строке будет фактически "\" на выходе, вместо того, чтобы помещать "\\" в значение буквенного символа

Ответ 2

Перед строкой он допускает различные правила форматирования строк. Вы не можете использовать обратную косую черту для указания специальных символов и "" (двойные кавычки становятся кавычками). Я считаю, что этот формат очень полезен для регулярных выражений

Пример

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

Вы также можете увидеть символ @перед переменной. В этом случае он позволяет использовать специальные ключевые слова С# в качестве переменных.

Пример:

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

Ответ 3

Это означает, что в такой строке нет необходимости выводить символы.

Итак, если вы хотите написать путь для c:\Windows, вы можете записать его как

string path="c:\\Windows";//Примечание escape файл '\'

ИЛИ

string [email protected]"c:\Windows";//'\' не нужно экранировать

Ответ 4

Существует два типа строковых литералов, регулярных и дословных. Символ @делает это дословным строковым литералом.

MSDN: строковые литералы (С#)

Ответ 5

Вербатные строковые литералы начинаются с @ и также заключены в двойные кавычки. Например:

@"good morning"  // a string literal

Понял, посмотрим на последние несколько строк над примером для получения дополнительной информации. http://msdn.microsoft.com/en-us/library/362314fe.aspx

Ответ 6

В C и С++ строка содержит некоторые специальные символы, называемые escape-символами. например, "\", "&" и " он сам является escape-символом!

В самом обычном режиме вы можете распечатать инструкцию типа

Нэнси Саид Hello World! и улыбнулся

вам нужно было установить строку следующим образом

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

Но люди в Microsoft сделали новую классную функцию в компиляторе С#, чтобы вы могли избежать головной боли обработки escape-символов, добавив @перед любой строкой, и компилятор будет обрабатывать все escape-символы для вас сам. В последнем примере вы можете иметь это на С#, например следующее:

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

Ответ 7

Он позволяет вам иметь строку с разделителем\в ней.

@ "C:\A\b\c\d\e\f" является законным.

Ответ 8

Используется для строкового литерала. Он отмечает строку в меток quote (") как значение без применения какой-либо интерпретации символов в этой строке.