Почему (?) мы можем объявить объект экземпляра вложенного класс (В) вот так:
new A.B()
Класс В не является статичным же.
И почему (?) мы не можем его определить вот так:
A a = new A();
new a.B();
при создании экземпляра класса используется его полное имя, даже если он объявлен внутри другого класса.
статичность класса здесь не причем. класс B содержится в описании класса A и никак не связан с его экземплярами.
>Для чего нужны статичные классы? Наследовать и создавать объекты нельзя же.
Это экзотическая альтернатива неймспейсов? Что можно с ними делать?
они необходимы при создании, например,
Extension Methods.
public static class MyExtensionProvider
{
public static void DoSomething(this Object targetObject)
{
return;
}
}
про оператор as уже ответили.