C# 名称空间&;类名冲突

C# 名称空间&;类名冲突,c#,namespaces,resharper,classname,C#,Namespaces,Resharper,Classname,将类命名为命名空间的结尾时,最佳做法是什么 例如: Successful.Domain.Resource { public class Resource {} } Successful.Data.Resource { public class Resources {} } 如果我想在Successful.Data命名空间中使用Resource类,我不能只引用我想要的资源。我需要声明其名称空间,如Domain.Resource.Resource

将类命名为命名空间的结尾时,最佳做法是什么

例如:

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

    Successful.Data.Resource {
    public class Resources {}
    }
如果我想在Successful.Data命名空间中使用Resource类,我不能只引用我想要的资源。我需要声明其名称空间,如Domain.Resource.Resource

我使用Resharper并在文件夹中构造所有代码,也就是说,我有这样的名称空间,文件夹结构示例:

Successful.Domain(名称空间)

  • 资源(文件夹)
    • 资源中心
    • ResourceLocation.cs
    • ResourceSettings.cs
Successful.Data(名称空间)

  • 资源(文件夹)
    • 资源中心
见:

X不要对命名空间和该命名空间中的类型使用相同的名称

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


您也可以通过以下方式查看本文:

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

在本例中,我将名称空间命名为
Resources
注意,这是复数形式,因为名称空间提供了类型的逻辑分组

类名应该更具体。
Resource
告诉您什么?嗯,没什么。正确命名类,类名应该传达它的功能。换句话说,它应该是不言自明的。如果我不知道这些资源是什么,我就想不出一个好名字


@Habib有很好的链接,所以我没有选择为您提供一些有用的链接。

我不确定这是否有帮助,但您是否尝试过使用Successful.Domain.Resource=Rsrc?这可能有助于避免名称冲突。我很好奇这是否有效——但不确定(因此还没有将其作为答案发布)。谢谢Habib的链接,这是对最佳实践的良好解释。@Habib谢谢链接。看起来Eric知道C#pretty good:)@OP在遵循Habib的建议后,更改文件夹结构以匹配名称空间不是个坏主意,除非你的应用程序是web应用程序。ReSharper有一个快速修复程序(可能还有一个全局修复程序)来为您完成此操作。