繁体   English   中英

命名空间命名约定

[英]namespace naming conventions

对于那些编写可重用组件的人,如果扩展.NET框架的功能,您认为最佳实践是什么?

例如,我正在创建一个Pop3库,因为.NET中不存在。 我是否创建自定义命名空间或使用System.Net.Mail

命名空间命名指南

命名命名空间的一般规则是使用公司名称,后跟技术名称,以及可选的功能和设计,如下所示。 复制代码

CompanyName.TechnologyName[.Feature][.Design]

通常,将内容包含在框架或库的默认命名空间中是一种非常糟糕的做法。 这可能会导致混淆,即新命名空间是否是现有库的一部分,该库是分发给每个人的框架的一部分,或者是由其他人添加的自定义框架的一部分。

此外,命名约定通过使用诸如CompanyName唯一标识符来尝试避免命名空间冲突。 它还减少了新库源方面的任何混淆和问题。

这不仅是微软的东西,也是Java中的东西。 Java中的命名空间,称为“包”,具有以下约定

唯一包名称的前缀始终以全小写ASCII字母书写,应该是顶级域名之一,目前是com,edu,gov,mil,net,org,或者是英文双字母代码之一识别ISO标准3166,1981中规定的国家。

软件包名称的后续组件根据组织自己的内部命名约定而有所不同。 此类约定可能指定某些目录名称组件是分区,部门,项目,计算机或登录名。

所以,如果我有一个超级棒的软件,它可能在net.coobird.superawesomesoftware包中。

并使用包含默认java.包名称java. javax. com.sun. 包裹是一个很大的禁忌。

另请参阅以下MSDN文章,了解有关命名命名空间的指导

命名空间的名称

为命名空间选择的名称应指示命名空间中的类型可用的功能。 例如,System.Net.Sockets命名空间包含允许开发人员使用套接字通过网络进行通信的类型。

命名空间名称的一般格式如下:

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]

例如, Microsoft.WindowsMobile.DirectX

暂无
暂无

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

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