组织目录中的命名空间和类

Dav*_*ues 2 c# namespaces code-organization

当我将一个类文件放在一个文件夹中时,Resharper建议我更新命名空间.因此,如果我有文件Classes/Game.cs(Class),它将建议命名空间MyApplication.Classes.

问题是我有一个名为的子文件夹Game,它有Game类的组件.它与命名空间相混淆.例如:

/Classes/Game.cs                   MyApplication.Classes.{Game}
/Classes/Game/Version.cs           MyApplication.Classes.Game.{Version}
Run Code Online (Sandbox Code Playgroud)

扭转这种情况的最佳方法是什么?

目前我正在那样组织:

/Classes/Game/Game.cs              MyApplication.Classes.Game.{Class}
/Classes/Game/Player.cs            MyApplication.Classes.Game.{Player}
/Classes/Game/Version/Version.cs   MyApplication.Classes.Game.Version.{Class}
/Classes/Game/Version/History.cs   MyApplication.Classes.Game.Version.{History}
Run Code Online (Sandbox Code Playgroud)

请注意,我将"main"类重命名Class为避免冲突,但我在文件名中保留了更准确的名称.但它很难看,不是吗?

Avn*_*tan 5

首先,一个名为"Classes"的文件夹似乎没有特别的帮助 - 一切都是一个类,在al之后,这似乎没有给你任何有用的信息.

但是,如果您希望保留此命名方案,则有两种选择.第一个是禁用Resharper的建议 - 或者至少告诉R#将它们视为提示,而不是警告.

第二种是为文件夹指定一个不是有效命名空间声明的名称.这将使R#停止建议它作为有效的命名空间.我经常看到和使用的格式是在名称周围使用方括号.所以你有一个这样的文件夹层次结构:

/Classes/Game.cs
/Classes/[Game]/Version.cs
Run Code Online (Sandbox Code Playgroud)

在这种情况下,R#将建议"MyApplication.Classes"作为Game和Version类的命名空间.