如何在C#中避免使用同名的命名空间和类?

时间:2017-08-04 08:58:11

标签: c# naming

  

我知道建议在类和命名空间中使用不同的名称,但有时很难实现它。 说起来容易做起来难。当我们因某种情况需要使用相同名称时,他们从未给我们提供解决方案。

例如,我需要一个命名空间来查找有关配置的所有类,因此命名空间名为 ABC.Configuration 。我不认为这个名字有什么问题。

在命名空间下我需要一个类来存储配置,因此它的名称也将是 Configuration 。合理,不是吗?

此外,我在命名空间下还有一些其他类,如ConfigurationBuilder,ConfigurationManager等。

Java中的更多内容,我们使用的包名称​​" camelCase" ,以及我们使用的类名" PascalCase" 。因此,由于命名的情况,没有问题。

那么如何在C#中命名这个场景中的类?

非常感谢你。如果我使用Configuration.Configuration,我需要编写更多只是因为命名而其他人只是没有命名空间的ConfigurationManager。这有点乱。

使用ConfigurationStore的想法很好,谢谢。 我认为命名类的解决方案是在名称中清楚地标识用法并添加另一个单词。 但在我的项目中,我需要在某处使用Configuration,如果我编写ConfigurationStore.Path来读取配置,它看起来很奇怪。 也许我可以使用像IConfiguration这样的界面来避免命名问题

4 个答案:

答案 0 :(得分:3)

您可以命名您的命名空间ConfigurationManagement。如果存储配置,请为您的班级ConfigurationStore命名。

camelCase与PascalCase:相同的工具告诉你命名你的命名空间就像一个类是不好的,它会告诉你,名字不同的实体也只是大写不一样。

所以找到更好的名字。

答案 1 :(得分:0)

在C#中,PascalCase用于两种情况。对于名称空间和类,如果我没有错的话。

答案 2 :(得分:0)

对名称空间和类使用相同的名称是完全可以的。如果您有Configuration指令,则可以将Configuration.Configuration课程称为Configurationusing。没有混淆。

如果只是您的个人偏好,您不希望有一个与命名空间同名的类,这里有一些其他配置名称:

  • Config
  • Configurations
  • Configs
  • ConfigurationManager(仅限类名)

此外,IDE可能会通过使用不同的图标来告诉您标识符所指的内容。例如在Xamarin Studio中:

enter image description here

命名空间标有{ s,而类标有C s。

答案 3 :(得分:0)

为什么有ABC.Configuration什么时候可以拥有ABC?我的意思是,如果不提长名,会有点混乱。 ABC.Configuration.Configuration,用于访问Configuration类,而不是ABC.Configuration。我宁愿应用后者。