方法中的 C# 在参数前有一个 @

本文关键字:有一个 参数 方法 | 更新日期: 2023-09-27 18:35:51

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

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

"@"是什么意思?

方法中的 C# 在参数前有一个 @

它用于转义关键字,以便您可以拥有名为 @class 或类似参数的参数,否则会导致语法错误。

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

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

我相信它是一个文字变量。

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

var int = 3; //compile error
var @int = 3; //okay