【问题标题】:C# in method, have a @ before parameter [duplicate]C#在方法中,在参数前有一个@[重复]
【发布时间】:2013-10-27 03:20:36
【问题描述】:

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

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

“@”是什么意思?

【问题讨论】:

  • "@" 允许使用关键字作为标识符
  • 大概你的第二行应该是@group.Name = "";

标签: c# methods parameters


【解决方案1】:

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

查看规范的相关部分:2.4.2 Identifiers

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

【讨论】:

    【解决方案2】:

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

    intdouble等关键字不能用作变量名,但可以用@符号绕过:

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

    【讨论】:

      猜你喜欢
      • 2012-11-19
      • 1970-01-01
      • 2016-04-02
      • 2011-07-30
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 2015-05-11
      相关资源
      最近更新 更多