【问题标题】:What does '@' do in c#? [duplicate]'@' 在 C# 中做了什么? [复制]
【发布时间】:2011-03-12 01:48:48
【问题描述】:

我刚去写那行...

if (!e.PeriodicData.Keys.Contains(process))
{
}

但在“!”上有错字并点击“@”。例如

if (@e.PeriodicData.Keys.Contains(process))
{
}

我原以为智能感知会翻转,但事实并非如此。于是我编译了,编译成功了。

它不是operator,那么“@”是什么?它有什么作用?

【问题讨论】:

    标签: c# syntax


    【解决方案1】:

    在这种情况下,它是一个有效的名称。如果您想将关键字用作变量名,例如@class,则使用它。

    见:What does placing a @ in front of a C# variable name do?

    【讨论】:

    • 话虽如此——不要这样做。使用关键字作为变量名非常令人困惑。
    • 在某些情况下这是不可避免的——尤其是对于采用 HTML 属性的 MVC 的 HtmlHelpers。
    • 这样的答案是一个非常好的迹象,表明您应该投票结束该问题作为重复问题。我不太确定你为什么不这样做;除了另一个问题的答案之外,您似乎没有添加任何信息。
    【解决方案2】:

    在这种情况下,它只是获取变量e。相当于e

    例如,如果您想调用变量 class,则在 var 之前使用 @ 符号。使用保留字作为变量。

    var @class = 1;
    var @virtual = 2;
    var @return = 3;
    

    字符串使用字面量,例如:

    "C:\\test\\example\\"
    

    等价于

    @"C:\test\example\"
    

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 2012-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多