命名空间&班级名称相互冲突

时间:2014-05-13 19:46:46

标签: c# namespaces resharper classname

命名与命名空间结尾相同的类时的最佳做法是什么?

示例:

    Successful.Domain.Resource {
    public class Resource {}
    }

    Successful.Data.Resource {
    public class Resources {}
    }

如果我想在Successful.Data命名空间中使用Resource类,我不能像我想的那样引用Resource。我需要声明它的名称空间,如Domain.Resource.Resource

我使用 Resharper 并在文件夹中构建我的所有代码,我有这样的名称空间,例如文件夹结构:

Successful.Domain(命名空间)

  • 资源(文件夹)
    • Resource.cs
    • ResourceLocation.cs
    • ResourceSettings.cs

Successful.Data(命名空间)

  • 资源(文件夹)
    • Resources.cs

2 个答案:

答案 0 :(得分:6)

请参阅:Framework Design Guidelines - Names of Namespaces

  

X DO NOT 对名称空间和该名称空间中的类型使用相同的名称。

因此建议使用与命名空间不同的类名。

您还可以Eric LippertDo not name a class the same as its namespace, Part One

看到这篇文章

答案 1 :(得分:1)

不建议对名称空间和类使用相同的名称。

在这种情况下,我将命名空间命名为Resources,注意这是复数,因为命名空间提供了类型的逻辑分组。

班级名称应该更具体。 Resource告诉你什么?嗯没事。正确命名您的类,类名应该传达它的作用。换句话说,它应该是自我解释的。如果不了解Recource的内容,我就无法想出一个好名字。

@Habib got it right链接良好,因此没有选择为您提供一些有用的链接。