我经常在命名空间和该命名空间中的类之间进行命名冲突,并且除了添加随机前缀之外,在首先使用这些名称似乎有意义时,我们想知道处理此问题的最佳实践.
拥有一个Models.Technology命名空间似乎是有意义的,它有许多技术类(即武器,农业,回收技术)和一些相关的接口.我还决定在Technology命名空间中使用一个技术抽象类,所有技术都来自该类.
但是,这迫使我使用这样的代码:
public Technology.Technology research(Technology.Technology tech) {...}
Run Code Online (Sandbox Code Playgroud)
同样地:
public Building.Building build(int count) {...}
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我没有命名我的命名空间技术,因为我在其他地方使用该术语作为可用技术列表的包装器......
我认为以下内容是有意义的,但这是不可能的,并且会抛出错误:The namespace 'foo' already contains a definition for 'bar'.
namespace foo
{
public class bar { ... }
}
namespace foo.bar
{
public class baz : EventArgs { ... }
}
Run Code Online (Sandbox Code Playgroud)
对于这样的案例,命名空间命名的适当方法是什么?
我正在设计一个名称空间来保存一组类,这些类将处理几个不同应用程序的用户相关任务.(登录,验证等)
问题是命名空间将被调用Fusion.User但是它需要在该命名空间中有一个有意义的类来调用User.
你应该有一个与命名空间同名的类吗?或者我在这里采取了错误的做法?