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

Mic*_*out 1 .net c# asp.net namespaces visual-studio

我有一个名为Site的Web应用程序项目,其中有一个名为SITE的文件夹(我知道,这不是最好的命名约定,但这是另一个故事).

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

namespace Site.@__SITE__ {
Run Code Online (Sandbox Code Playgroud)

为什么添加了at符号?我可以删除它,项目编译并运行正常.此外,无论是否有at符号,实际的命名空间都是Site.__SITE__.

谢谢!

Jar*_*Par 10

@符号是一种允许在C#应用程序中使用与C#关键字冲突的名称的方法.C#中以__开头的所有名称都保留供将来使用.因此,只要CodeDom发出名称前缀为__的代码,它就会发出@符号,以保证名称合法,因为它可能与未来的C#关键字冲突.

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