Поделиться через


Тип typename<> не может наследовать от типа, вложенного в него

Определение класса или интерфейса включает инструкцию Inherits Statement , указывающую вложенный в него тип.

Наследование должно быть линейным, не циклическим. Тип не может наследовать от типа, который наследует от него.

Связанное ограничение — тип не может наследовать от типа, который еще не определен. Наследование включает возможность повторного использования элементов базового класса, а для этого необходимо, чтобы эти элементы были определены. Поэтому Visual Basic не может компилировать код, например следующий пример.

Public Class outerClass  
    ' The following statement is INVALID because innerClass is not defined.  
    Inherits innerClass  
    Public Class innerClass  
        Public Sub doSomething()  
        End Sub  
    End Class  
End Class  

Идентификатор ошибки: BC30908

Исправление ошибки

  • Если наследующий тип (внешний тип во вложении) должен наследовать от внутреннего типа, переместите внутренний тип из внешнего типа.

  • Если внутренний тип должен быть вложен во внешний тип, внешний тип не может наследовать от него. Удалите Inherits Statement.

См. также