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

Paw*_*lai 7 .net c# syntax

我认为我的问题与此不同: 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);
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 21

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

例如:

string @int = "hello";
var @void = @int;
Run Code Online (Sandbox Code Playgroud)

使用它作为标识符claimsList表明编写它的人不理解它.标识符用于字符串变量的事实在这里完全无关紧要.

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

public static void Foo(this Bar @this)
{
    return @this.Baz() * 2;
}
Run Code Online (Sandbox Code Playgroud)