名称空间,类名冲突

本文关键字:冲突 空间 | 更新日期: 2023-09-27 18:03:16

将类命名为与名称空间结尾相同的最佳实践是什么?

的例子:

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

如果我想使用的资源类的成功。数据命名空间,我不能只是引用我想要的资源。我需要声明它的命名空间像domain。resource。resource

我使用Resharper并在文件夹中组织我所有的代码,这就是为什么我有这样的命名空间,文件夹结构的例子:

成功。域(名称空间)

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

成功。数据(名称空间)

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

名称空间,类名冲突

参见:框架设计指南-命名空间的名称

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

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

您还可以看到Eric Lippert的这篇文章:不要将类命名为与其名称空间相同的名称,第一部分

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

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

类名应该更具体。Resource告诉你什么?嗯,没有。正确地命名你的类,类名应该传达它的作用。换句话说它应该是不言自明的。如果不太了解资源是什么,我无法想出一个好名字。

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