我发现可以在C#中以’@’字符开头变量名。在我的C#项目中,我正在使用用Java编写的Web服务(我向项目添加了Web引用)。WSDL中定义的接口对象之一具有一个名为“ params”的成员变量。显然,这是C#中的保留字,因此您不能有一个带有成员变量的类,其名称为“ params”。生成的代理对象包含一个如下所示的属性:
public ArrayList @params { get { return this.paramsField; } set { this.paramsField = value; } }
我搜索了VS 2008 c#文档,但找不到任何相关信息。另外,搜索Google并没有给我任何有用的答案。那么,变量/属性名称中“ @”字符的确切含义或用途是什么?
直接来自C#语言规范,标识符(C#) :
前缀“ @”允许使用关键字作为标识符,这在与其他编程语言接口时非常有用。字符@实际上不是标识符的一部分,因此在其他语言中,标识符可能被视为普通标识符,没有前缀。具有@前缀的标识符称为逐字标识符。