Class.Class 与 Namespace.Class 用于顶级通用类库?

Joa*_*nge 5 .net c# class nested-class

哪个更容易接受(最佳实践)?:

namespace NP
   public static class IO
   public static class Xml
   ...
   // extension methods

using NP;

IO.GetAvailableResources ();
Run Code Online (Sandbox Code Playgroud)

对比

public static class NP
   public static class IO
   public static class Xml
   ...
   // extension methods

NP.IO.GetAvailableResources ();
Run Code Online (Sandbox Code Playgroud)

同样对于#2,代码大小是通过部分类来管理的,因此每个嵌套类都可以在一个单独的文件中,扩展方法也是如此(除了它们没有嵌套类)

我更喜欢#2,有几个原因,例如能够使用已经常用的类型名称,例如IO,我不想替换或冲突。

你更倾向哪个?各有优缺点吗?这种情况的最佳做法是什么?

编辑:两者之间还会有性能差异吗?

Osk*_*lin 3

我想说#1。因为当您将许多类捆绑到一个静态类中时,您会执行与命名空间相同的操作。这就是为什么我说最好让命名空间为你做这件事。

在这种情况下,您还可以通过在需要时添加 using 来摆脱在所有内容前面编写“NP”的麻烦。我认为你应该嵌套命名空间,这样它们就不会发生冲突,或者使用比 IO 更具描述性的命名空间名称。

大多数情况下,最佳实践是 Microsoft 所做的,但我从未见过他们这样做#2