C # наследовать от вложенного класса внутри себя - PullRequest
2 голосов
/ 29 января 2010

Возможно ли для класса наследовать от вложенного класса или реализовать вложенный интерфейс в C #?

class Outer : Outer.Inner {
    class Inner { ... }
    ...
}

Ответы [ 2 ]

2 голосов
/ 29 января 2010

Как вы написали, нет (см. это ). Но если ваш внутренний интерфейс находится в другом классе, тогда вы можете.

public class SomeClass : SomeOtherClass.ISomeInterface {
    public void DoSomething() {}
}

public class SomeOtherClass {
    public interface ISomeInterface {
        void DoSomething(); 
    }
}
1 голос
/ 29 января 2010

Пока вложенный тип виден в вашей области, а не sealed, тогда да.

Редактировать 2: Не воспринимайте это сообщение как комментарий о том, должен ли ИЛИ не делать это, я только заявляю это разрешено :)

Редактировать: Вы не можете наследовать от типа, вложенного в себя, но вы можете реализовать интерфейс, объявленный вложенным в базовый тип:

public class Base
{
    public interface ISomething
    {
    }
}

public class Derived : Base, Base.ISomething
{
}
...