我认为我的问题与此不同: 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);
答案 0 :(得分:21)
在这种情况下,它完全没必要,但它允许您在C#中使用任何关键字作为标识符。它根本不会改变标识符的含义,或者它是如何使用的 - 它只告诉编译器你不希望将以下字符识别为关键字。
例如:
string @int = "hello";
var @void = @int;
使用它作为claimsList
的标识符表明编写它的人不理解它。标识符用于字符串变量的事实完全与此无关。
就我个人而言,我几乎只使用了扩展方法的功能,我已经知道它可以调用第一个参数@this
:
public static void Foo(this Bar @this)
{
return @this.Baz() * 2;
}