5

我在 C# 中遇到了一个方法

int Func(Contact @group)
{
    group.Name = "";
}

'@' 是什么意思?

4

2 回答 2

7

它用于转义关键字,因此您可以使用命名@class或类似的参数,否则会导致语法错误。

请参阅规范的相关部分:2.4.2 标识符

前缀“@”允许使用关键字作为标识符,这在与其他编程语言交互时很有用。字符 @ 实际上不是标识符的一部分,因此标识符在其他语言中可能被视为普通标识符,没有前缀。带有@ 前缀的标识符称为逐字标识符。允许对不是关键字的标识符使用 @ 前缀,但出于风格问题强烈建议不要使用。

于 2013-10-18T10:09:20.857 回答
3

我相信这是一个字面变量。

诸如 , 等关键字int不能double用作变量名,但是,您可以使用@符号绕过它:

var int = 3; //compile error

var @int = 3; //okay
于 2013-10-18T10:10:41.060 回答