C#中变量名中@字符的用途/含义是什么?

C#中变量名中@字符的用途/含义是什么?

我发现您可以用C#中的“@”字符开始变量名。在我的C#项目中,我使用了一个用Java编写的Web服务(我向我的项目添加了一个Web引用)。WSDL中定义的接口对象之一有一个名为“params”的成员变量。显然,这是C#中的一个保留字,所以不能有一个名为“params”的成员变量的类。生成的代理对象包含如下属性:

public ArrayList @params {
    get { return this.paramsField; }
    set { this.paramsField = value; }}

我在VS 2008 c#文档中进行了搜索,但没有找到任何关于它的信息。此外,搜索谷歌没有给我任何有用的答案。那么,“@”字符在变量/属性名称中的确切含义或用法是什么?


DIEA
浏览 974回答 3
3回答

临摹微笑

直接从C#语言规范, 标识符(C#) :前缀“@”允许将关键字用作标识符,这在与其他编程语言进行接口时非常有用。字符@实际上不是标识符的一部分,因此在其他语言中,该标识符可能被视为普通标识符,而没有前缀。带有@前缀的标识符称为逐字标识符。

倚天杖

它只允许您使用保留字作为变量名。不推荐IMHO(除非在像你这样的情况下)。

牧羊人nacy

在C#中,at(@)字符用于表示显式不遵守语言规范中相关规则的文字。具体来说,它可以用于与保留关键字冲突的变量名(例如,您不能使用Params,但可以使用@params,语言规范中的out/ref/任何其他关键字也是如此)。此外,它还可以用于未转义的字符串文本;这与路径常量特别相关,例如,而不是path = "c:\\temp\\somefile.txt"你可以写path = @"c:\temp\somefile.txt"..它对于正则表达式也非常有用。
打开App,查看更多内容
随时随地看视频慕课网APP