每个程序集一个命名空间?

4

每个程序集至少需要一个命名空间,这是一般的准则吗?

在什么情况下,多个程序集通常会共享同一个命名空间呢?

开发环境:C#和.NET

3个回答

1

来自MSDN

程序集

程序集是一组类型和资源,形成一个逻辑功能单元。.NET Framework中的所有类型都必须存在于程序集中;每次使用Visual Basic .NET创建Microsoft Windows®应用程序、Windows服务、类库或其他应用程序时,都会构建一个单独的程序集。每个程序集都存储为.exe或.dll文件。

命名空间

命名空间不是程序集的替代品,而是一种补充程序集的第二种组织方法。命名空间是一种将类型名称分组并减少名称冲突机会的方法。命名空间可以包含其他命名空间和类型。类型的完整名称包括包含该类型的命名空间的组合。


谢谢您的回答。我确实理解它们之间的区别,但我的问题更多地涉及最佳实践和惯例。 - Dev28
这个链接可能会对你有所帮助。但我认为你应该在定义本身中找到答案。 - Mr_Green

0
答案是——这取决于具体情况。
如果您的程序集都是给定项目的小组件,如果它们是独立的、自包含的,并且全部“适合”于整个项目的命名空间下,则可能不需要它们自己的命名空间。
如果您正在构建只与某些项目有轻微关联且容易在许多项目中使用的程序集,则可以将它们分组到自己的命名空间中。
如果您正在创建一个具有类似功能或重复成员的类,以在项目或CLR中已有的类,则也需要为其创建一个命名空间。

0

我建议让命名空间与文件位置匹配。尝试安装Resharper,你就会明白我的意思。

我不知道有什么情况下程序集应该共享相同的命名空间。只有命名空间的第一部分应该相同,即公司或产品的名称。

请参考Mark的这篇文章

并且这篇文章告诉Resharper如何解决这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接