Ответ 1
Символ @позволяет использовать зарезервированное слово. Например:
int @class = 15;
Вышеупомянутые работы, когда ниже не будет:
int class = 15;
Возможный дубликат:
Что такое использование/значение символа @в именах переменных в С#?
Я понимаю, что символ @может использоваться перед строковым литералом, чтобы изменить способ компиляции строки. Но что это значит, когда имя переменной имеет префикс с символом @?
Символ @позволяет использовать зарезервированное слово. Например:
int @class = 15;
Вышеупомянутые работы, когда ниже не будет:
int class = 15;
Символ @служит для двух целей в С#:
Во-первых, он позволяет использовать зарезервированное ключевое слово как переменную, подобную этой:
int @int = 15;
Второй параметр позволяет указать строку без необходимости пропускать любые символы. Например, символ "\" является escape-символом, поэтому обычно вам нужно будет это сделать:
var myString = "c:\\myfolder\\myfile.txt"
альтернативно вы можете это сделать:
var myString = @"c:\myFolder\myfile.txt"
Важным моментом, который забывают другие ответы, является то, что "@keyword" скомпилировано в "ключевое слово" в CIL.
Итак, если у вас есть фреймворк, созданный, скажем, в F #, для которого требуется определить класс с свойством с именем "class", вы можете это сделать.
Это не так полезно на практике, но не имея этого, это предотвратит использование С# из некоторых форм языкового взаимодействия.
Обычно я вижу, что он используется не для взаимодействия, но чтобы избежать ограничений по ключевым словам (обычно это имена локальных переменных, где это единственный эффект), т.е.
private void Foo(){
int @this = 2;
}
но я бы сильно отговорил! Просто найдите другое имя, даже если "лучшим" именем для переменной является одно из зарезервированных имен.
Он позволяет использовать ключевое слово С# в качестве переменной. Например:
class MyClass
{
public string name { get; set; }
public string @class { get; set; }
}