在C#中变量/标识符前面的@是什么?

时间:2013-03-06 05:14:36

标签: c# .net syntax

我认为我的问题与此不同: What's the @ in front of a string in C#?

我在VB.net工作,所以在C#中这可能是一件简单的事情,但我不知道这一点。

我得到了以下代码,其中我在字符串变量中有10个XML。在下面的代码片段中调用LoadXml方法时,请建议在claimList字符串变量前面需要@符号:

private void UploadNewClaims(PMAUser grumble, string companyAbbreviation, string claimsList)
{
    var claimDoc = new System.Xml.XmlDocument();
    claimDoc.LoadXml(@claimsList);

1 个答案:

答案 0 :(得分:21)

在这种情况下,它完全没必要,但它允许您在C#中使用任何关键字作为标识符。它根本不会改变标识符的含义,或者它是如何使用的 - 它只告诉编译器你希望将以下字符识别为关键字。

例如:

string @int = "hello";
var @void = @int;

使用它作为claimsList的标识符表明编写它的人不理解它。标识符用于字符串变量的事实完全与此无关。

就我个人而言,我几乎只使用了扩展方法的功能,我已经知道它可以调用第一个参数@this

public static void Foo(this Bar @this)
{
    return @this.Baz() * 2;
}