我得到了一个开发人员的项目,在查看代码时我发现了这样的代码:
public interface IPackage
{
void @Do();
}
我刚刚在字符串的上下文中看到了 @ 的用法。但在这种情况下,这意味着什么?有人可以解释一下吗?先感谢您!
来自MSDN:
前缀“@”允许使用关键字作为标识符,这在与其他编程语言交互时很有用。字符 @ 实际上不是标识符的一部分,因此标识符在其他语言中可能被视为普通标识符,没有前缀。带有@ 前缀的标识符称为逐字标识符。允许对不是关键字的标识符使用 @ 前缀,但出于风格问题强烈建议不要使用。
该@
字符允许您提供保留为关键字的变量名称。一个常见且有用的用例是:
public static void AnExtensionMethod(this SomeObject @this)
{
@this.AMethod();
}
在您的示例中,@
在 C# 中似乎已过时,因为Do
它不是关键字(do
is)。虽然它在 VB.NET 中,所以如果这个接口将被 VB.NET 客户端使用,它是需要的。在您的情况下,只有当该方法确实没有比Do
. 就像现在一样,它似乎不太可读。从概念上讲,“package.do”可以表示任何含义,因此您也可以调用它x
。但也许在您的领域语言中,这是一个更精确的术语。
该文档指出:
前缀“@”允许使用关键字作为标识符,这在与其他编程语言交互时很有用。字符 @ 实际上不是标识符的一部分,因此标识符在其他语言中可能被视为普通标识符,没有前缀。带有@ 前缀的标识符称为逐字标识符。允许对不是关键字的标识符使用 @ 前缀,但出于风格问题强烈建议不要使用。