0

我得到了一个开发人员的项目,在查看代码时我发现了这样的代码:

public interface IPackage
{
    void @Do();
} 

我刚刚在字符串的上下文中看到了 @ 的用法。但在这种情况下,这意味着什么?有人可以解释一下吗?先感谢您!

4

2 回答 2

3

来自MSDN

前缀“@”允许使用关键字作为标识符,这在与其他编程语言交互时很有用。字符 @ 实际上不是标识符的一部分,因此标识符在其他语言中可能被视为普通标识符,没有前缀。带有@ 前缀的标识符称为逐字标识符。允许对不是关键字的标识符使用 @ 前缀,但出于风格问题强烈建议不要使用。

于 2013-10-31T11:19:53.643 回答
2

@字符允许您提供保留为关键字的变量名称。一个常见且有用的用例是:

public static void AnExtensionMethod(this SomeObject @this)
{
    @this.AMethod();
}

在您的示例中,@在 C# 中似乎已过时,因为Do它不是关键字(dois)。虽然它在 VB.NET 中,所以如果这个接口将被 VB.NET 客户端使用,它是需要的。在您的情况下,只有当该方法确实没有比Do. 就像现在一样,它似乎不太可读。从概念上讲,“package.do”可以表示任何含义,因此您也可以调用它x。但也许在您的领域语言中,这是一个更精确的术语。

文档指出:

前缀“@”允许使用关键字作为标识符,这在与其他编程语言交互时很有用。字符 @ 实际上不是标识符的一部分,因此标识符在其他语言中可能被视为普通标识符,没有前缀。带有@ 前缀的标识符称为逐字标识符。允许对不是关键字的标识符使用 @ 前缀,但出于风格问题强烈建议不要使用。

于 2013-10-31T11:21:01.503 回答