Il tipo '<typename>' non può ereditare da un tipo annidato al suo interno

Una definizione di classe o interfaccia include un'Istruzione Inherits Statement che specifica un tipo annidato al suo interno.

L'ereditarietà deve essere lineare, non circolare. Un tipo non può ereditare da un tipo che eredita da esso.

Una restrizione correlata è una relazione in cui un tipo non può ereditare da un tipo non ancora definito. L'ereditarietà presuppone la capacità di riutilizzare membri della classe base, che a sua volta richiede la definizione di questi membri. Di conseguenza Visual Basic non può compilare il codice come l'esempio seguente.

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  

ID errore: BC30908

Per correggere l'errore

  • Se il tipo che eredita (il tipo esterno nell'annidamento) deve ereditare dal tipo interno, spostare il tipo interno all'esterno di quello esterno.

  • Se il tipo interno deve essere annidato all'interno di quello esterno, il tipo esterno non potrà ereditare da quello interno. Rimuovere l' Inherits Statement.

Vedi anche