来自Software Engineering Stack Exchange的

This question was migrated,因为可以在Stack Overflow上进行回答。
                            Migrated 4年前。
                        
                    
                
                            
                    
当我将类文件放在文件夹中时,Resharper建议我更新名称空间。因此,如果我有文件Classes/Game.cs(类),它将建议命名空间MyApplication.Classes

问题是我也有一个名为Game的子文件夹,该子文件夹具有Game类的组件。并且它与名称空间发生冲突。例如:

/Classes/Game.cs                   MyApplication.Classes.{Game}
/Classes/Game/Version.cs           MyApplication.Classes.Game.{Version}


解决这个问题的最佳方法是什么?

目前,我正在像这样组织:

/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}


因此请注意,为了避免冲突,我将“ main”类重命名为Class,但在文件名中保留了更准确的名称。但这很丑,不是吗?

最佳答案

首先,一个名为“ Classes”的文件夹似乎并不特别有用-毕竟,所有内容都是一个类,并且这似乎没有提供任何有用的信息。

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

第二个是给您的文件夹一个名称,该名称不是有效的名称空间声明。这将使R#停止建议它为有效的名称空间。我最常使用的格式是在名称周围使用方括号。因此,您具有如下所示的文件夹层次结构:

/Classes/Game.cs
/Classes/[Game]/Version.cs


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

关于c# - 在目录中组织 namespace 和类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28686989/

10-12 12:31
查看更多