[英]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.