2016-03-18 5 views
4

В чем обоснование того, что нестатические внутренние классы могут быть объявлены в статическом классе?нестатические классы в статических классах

public static class A 
{ 
    public class B 
    { 
     public B() { } 
    } 
} 

По сравнению с тем, что нестатические элементы и функции не могут быть объявлены в статическом классе.

+2

Для хорошего примера: статический класс 'System.Linq.Enumerable' имеет несколько (нестатических) внутренних классов. –

ответ

3

Как насчет нескольких экземпляров B? Таким образом, нестатические классы, вложенные в статические классы, не отличаются от обычных нестатических классов.

public static class A 
{ 
    public class B 
    { 
     public B() { } 
    } 

    private static B b1 = new B(); 
    private static B b2 = new B(); 
} 

Смотрите в реальной жизни, например статический System.Linq.Enumerable класса, который содержит некоторые конкретные реализации, как вложенные нестатические классов.

Смежные вопросы