在非静态类中嵌套私有静态类是否被认为是不好的做法?
public class Outer { private static class Inner { } }
这里的想法是所有的“外部”实例将共享对静态的访问.另一种方法可能是让Inner类是非静态的,并使用它的静态实例:
public class Outer { private static innerInstance = new Inner(); private class Inner { } }
我必须承认,我几乎从不使用嵌套类,无论是否静态,但我对这个特定的概念感兴趣.
解决方法
这两种方法都是完全有效的.
我希望开发人员更经常地使用私有嵌套类.结合c#的partial
关键字,它使书写非常复杂的类更易于维护.想象一下,需要构建一个具有小应用程序复杂性的类 – 当您实际上可以构建整个私有应用程序时,容易得多,类完全是内部复杂的外部类!
我看到的一个非常常见的情况是enumerables – 这些可能非常复杂,特别是当您开始构建可以链接的定制迭代器(如LINQ)时.隐藏单个类中的复杂性是封装的非常定义.