"@"字符可以作为前缀,使关键字可用作标识符。
大多数 .net 开发人员知道这一点。
但我们可能不知道的是:
如果两个标识符在去除 "@" 前缀后完全相同,则它们被视为相同。
因此,
static void Main(string[] args)
{
int x = 123;
Console.WriteLine(@x);
}
这是绝对有效的代码,并将123打印到控制台。
我很好奇为什么规范中有这样的规则,以及这个特性在现实世界中可能如何使用(如果它们不是关键字,用"@"前缀标识符就没有意义,对吧?)。
@x
是有效的。抱歉我一开始没有理解你的问题。对于测试,你也可以打印nameof(@x)
,你会看到它打印出了x
。 - M.kazem Akhgary