Я использую символ @только с локальным путем, но когда я использую @точно?
Когда использовать @в С#?
Ответ 1
Вы используете @перед строками, чтобы избежать необходимости выполнять специальные символы.
Это из MSDN:
Преимущество @-quoting заключается в том, что escape-последовательности не обрабатываются, что позволяет легко писать для Например, полное имя файла:
@ "c:\Docs\Source\a.txt" // скорее чем "c:\\Docs\\Source\\a.txt"
Ответ 2
AFAIK, вы можете использовать @в любом месте, где вы не хотите, чтобы значение по умолчанию этого объекта не сохранялось. Например, @class сделает класс идентификатором. @bool сделает bool идентификатором вместо ключевого слова.
Вы знаете использование @перед строками. Он используется для указания того, что буквально принимает весь текст строки и не обрабатывает никаких символов в строке специально.
Изменить: да, еще одна вещь: @Keyword
скомпилирован в Keyword
в IL.
Ответ 3
Строки Verbatim
An @
перед строковым литералом в С# обозначается строка verbatim. В стенографической строке только escape-последовательность цитаты (""
) анализируется как escape-последовательность; все остальные, например. \n
, \t
и т.д. игнорируются.
Вы увидите этот синтаксис, используемый с путями файлов и т.д., потому что удобно, чтобы компилятор игнорировал обратные косые черты в пути, вместо того, чтобы удваивать их, например.
var s = @"c:\Some\File\Path.txt";
немного легче читать, чем
var s = "c:\\Some\\File\\Path.txt";
Зарезервированные слова
Вы также можете префикс идентификаторы с @
, чтобы разрешить использование зарезервированных слов в идентификаторах. Например, @class
может использоваться как идентификатор, тогда как class
не будет разрешено. В этом конкретном случае @class
немного меньше jarring (по крайней мере, я нахожу), чем обычное соглашение klass
или clazz
, которое часто используется для обхода этого ограничения на других языках.
Ответ 4
Если вы хотите использовать ключевые слова как имена переменных
string @string = "Hi";
Ответ 5
Вы можете префикс строки с помощью знака @, чтобы избежать необходимости вводить обратную косую черту 2, чтобы иметь в виду одну обратную косую черту. Вот почему он часто используется для локального пути, поскольку он сохраняет некоторую типизацию и упрощает то, на что вы смотрите, когда читаете его позже. Когда у вас есть куча двойных кавычек и другие escape-символы, ака специальные символы - это когда вы хотите знак @. Когда вы используете знак @, не забудьте поставить только одну обратную косую черту, если вы имеете в виду обратную косую черту. При использовании @вы хотите использовать символ двойной кавычки, поместите две двойные кавычки вместо обратной косой черты, двойную кавычку.
String path = "C:\\path\\to\\my\\file";
против
String path = @"C:\path\to\my\file"; //@ says one backslash is enough
вот еще один пример:
String quotation = "He said, \"Wow!\""; //backslashes say not to end string
против.
String quotation = @"He said, ""Wow!"""; //need a different method of denoting double quote