繁体   English   中英

命名空间和类名冲突

[英]Namespace & Class name collide

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

例子:

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

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

如果我想在 Success.Data 命名空间中使用 Resource 类,我不能随意引用 Resource。 我需要声明它的命名空间,如 Domain.Resource.Resource

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

成功的.Domain(命名空间)

  • 资源(文件夹)
    • 资源.cs
    • 资源位置.cs
    • 资源设置.cs

成功的.Data(命名空间)

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

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

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

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

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

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

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

类名应该更具体。 Resource告诉你什么? 嗯没事。 正确命名你的类,类名应该传达它的作用。 换句话说,它应该是不言自明的。 在不知道 Recource 是什么的情况下,我无法想出一个好名字。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM