繁体   English   中英

为什么Visual Studio向我的命名空间添加一个at符号(@)?

[英]Why does Visual Studio add an at sign (@) to my namespace?

我有一个名为Site的Web应用程序项目,并且在其中有一个名为SITE的文件夹(我知道,不是最佳的命名约定,但这是另一回事了)。

当我检查设计器生成的代码时,它会像这样开始:

namespace Site.@__SITE__ {

为什么要添加at符号? 我可以将其删除,项目可以编译并正常运行。 同样,无论是否带有at符号,实际的名称空间都是Site.__SITE__

谢谢!

@符号是一种允许在C#应用程序中使用与C#关键字冲突的名称的方法。 C#中所有以__开头的名称都保留供将来使用。 结果,每当CodeDom发出名称以__开头的代码时,它都会发出@符号,以确保该名称合法,因为它可能与将来的C#关键字发生冲突。

您看到的代码可能遵循相同的规则,或者只是作为CodeDom的一部分发出的

当标识符与内置关键字冲突时,使用@前缀。 大概保留了双下划线标识符以供将来使用,因此设计人员可以安全使用。

如果您将“站点”命名为保留关键字,他们会这样做...因此,如果您的站点名称是“类” :-P @符号将允许将该名称用作命名空间

如果在C#中的标识符之前出现@ ,则编译器会将以下字符串视为标识符,即使该字符串是关键字。

这只是自动生成的标识符的安全措施。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM