Когда использовать @в С#?

Я использую символ @только с локальным путем, но когда я использую @точно?

Ответ 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