C#-名称空间命名约定

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

例如,由于.NET中不存在Pop3库,因此我正在创建该库。 是否创建自定义名称空间或使用System.Net.Mail

Vince Panuccio asked 2020-02-12T08:27:37Z
2个解决方案
63 votes

根据命名空间命名准则:

命名空间的通用规则   是使用公司名称,后跟   技术名称以及可选的   特点和设计如下。 复制   码

java.

通常,开始将内容包含在框架或库的默认名称空间中是一种非常糟糕的做法。 就新名称空间是现有库的一部分(是分发给所有人的框架的一部分)还是其他人添加的自定义框架的一部分而言,这可能会造成混淆。

同样,命名约定尝试通过具有诸如java.之类的唯一标识符来避免名称空间冲突。这还减少了新库来源方面的任何混乱和问题。

这不仅是微软的事情,而且在Java中也是如此。 Java中的命名空间称为“包”,具有以下约定:

唯一程序包名称的前缀是   始终以全小写ASCII格式编写   字母,应该是   顶级域名,当前为com,   edu,gov,mil,net,org或以下之一   英文二字母代码识别   ISO标准中指定的国家   1981年,第3166页。

包装的后续组件   名称根据   组织自己的内部命名   约定。 这样的约定可能   指定特定的目录名称   组成部门,部门   项目,机器或登录名。

因此,如果我有一个很棒的软件,则可能在java.软件包中。

使用包含默认java.javax.com.sun.软件包的软件包名称非常重要。

coobird answered 2020-02-12T08:28:37Z
16 votes

另请参阅以下MSDN文章,以获取有关命名空间命名的准则

命名空间的名称

为命名空间选择的名称应表明所实现的功能   按名称空间中的类型可用。 例如,   System.Net.Sockets命名空间包含使开发人员能够执行以下操作的类型   使用套接字通过网络进行通信。

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

Microsoft.WindowsMobile.DirectX

例如Microsoft.WindowsMobile.DirectX

akjoshi answered 2020-02-12T08:29:19Z
translate from https://stackoverflow.com:/questions/918894/namespace-naming-conventions