Il tipo '<nometipo>' non può ereditare da un tipo nidificato al suo interno

Aggiornamento: novembre 2007

Type '<typename>' cannot inherit from a type nested within it

Una definizione di classe o interfaccia include un'Istruzione Inherits che specifica un tipo nidificato 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'eredità presuppone la capacità di riutilizzare membri della classe base, che a sua volta richiede la definizione di questi membri. Pertanto in Visual Basic non è possibile 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 nella nidificazione) deve ereditare dal tipo interno, spostare il tipo interno all'esterno di quello esterno.

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

Vedere anche

Altre risorse

Ereditarietà in Visual Basic