Символ "@" разрешен в качестве префикса для включения ключевых слов в качестве идентификаторов. Об этом знают большинство разработчиков .net.
Но что мы можем не знать: Два идентификатора считаются одинаковыми, если они идентичны после удаления префикса @@.
Итак,
static void Main(string[] args)
{
int x = 123;
Console.WriteLine(@x);
}
является абсолютно допустимым кодом и печатает 123 на консоли.
Мне любопытно, почему у нас есть такое правило в спецификациях и как эта функция может использоваться в реальных ситуациях (не имеет смысла префиксные идентификаторы с "@", если они не являются ключевыми словами, верно?).