一个项目中有多个命名空间

11
我发现有时候在我正在处理的项目中需要有多个命名空间 - 在同一个项目中使用多个命名空间会出现什么问题吗?
另一种选择显然是在解决方案中拥有多个项目(每个命名空间一个)。

2
“另一种选择显然是在解决方案中拥有多个项目。” - 这通常是更好的方法。 - Mitch Wheat
但那是一个完全不同的问题,需要不同的解决方案。 - Mitch Wheat
1
非平凡的项目将拥有多个嵌套命名空间,而非平凡的应用程序将拥有多个项目。这并不是什么大问题。不要把所有东西都塞进一个命名空间或一个项目中,并认为你很有组织性。 - Anthony Pegram
2
什么?internal表示只能在同一程序集中访问,而不是相同的命名空间。 - Tim Goodman
@TimGoodman 哦,出于某种原因,我确信 internal 只对具有相同根命名空间的类可见。我检查了一下,你是正确的...现在这个问题有点无意义了。 - Acidic
显示剩余4条评论
3个回答

13

没问题。我的命名空间通常与项目的文件夹结构对应。因此,顶层命名空间可能对整个项目都是相同的,但会有多个子命名空间。

命名空间的目的是组织和避免命名冲突,不一定按照这个顺序。而将事物分成多个项目更多是因为你想要多个二进制文件或者你想在多个解决方案之间共享代码。这些问题有点互不相关。


1
此外,Visual Studio会自动使用这种结构在新的.cs文件中创建命名空间。 - Adam Plocher

2

一个命名空间可以有多个类。在项目中使用多个命名空间是完全可以的,这只是一种视觉上的调整。


1
不涉及最佳实践,使用一个项目中的多个命名空间不会有任何技术问题。然而,Visual Studio仅支持一个基本命名空间,该命名空间位于项目属性中(在解决方案浏览器中右键单击项目属性),并且每次创建新文件时,它将被创建为此默认命名空间(如果在根目录上),或者默认命名空间加上您拥有的任何文件夹结构。这并不是问题,但是如果特定文件将不使用项目的默认命名空间,则需要手动检查添加到项目中的每个新C#文件并相应更改命名空间。

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