如何避免为类及其命名空间使用相同的名称,例如Technology.Technology?

PRI*_*UFF 20 c# namespaces naming-conventions

我经常在命名空间和该命名空间中的类之间进行命名冲突,并且除了添加随机前缀之外,在首先使用这些名称似乎有意义时,我们想知道处理此问题的最佳实践.

拥有一个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)

顺便说一下,我没有命名我的命名空间技术,因为我在其他地方使用该术语作为可用技术列表的包装器......

Kse*_*pac 19

没有更准确的指示,当你遇到这个问题时,很难给你一些一般的建议.

但是,当你在命名空间中有一个基类时,我会假设你有这个问题,其他类继承自它.如果是这种情况,您可以调用您的类BaseTechnology(基类)或AbstractBuilding(抽象类)或IAnimal(接口).这甚至可以让您更清晰,因为您在类型的名称中指定了一些重要的东西.