Freigeben über


<Name des abgeleiteten Typs> erweitert den Zugriff des <Name des internen Typs>-Typs auf <Bereich> '<Bereichsname>' und kann daher nicht von <Typ> '<Name des erstellten Basistyps>' erben

Aktualisiert: November 2007

'<derivedtypename>' cannot inherit from <type> '<constructedbasetypename>' because it expands the access of type '<internaltypename>' to <region> '<regionname>'

Eine abgeleitete Klasse oder Schnittstelle versucht, die Zugriffsebene eines internen Typs zu erweitern, indem sie ihn als Typargument für eine Basisklasse oder Basisschnittstelle verwendet.

Dieser Fehler kann durch folgenden Code generiert werden.

Public Class containingClass
    Public Class baseClass(Of t)
    End Class
    Friend Class derivedClass
        Inherits baseClass(Of internalStructure)
    End Class
    Private Structure internalStructure
        Dim firstMember As Integer
    End Structure
End Class

Der Zugriff von Code außerhalb von containingClass auf internalStructure ist nicht zulässig. Auf derivedClass kann jedoch jeder Code in derselben Assembly zugreifen. Daher kann derivedClass nicht baseClass erben, wenn sie als Typargument internalStructure verwendet, weil hierdurch internalStructure im gesamten definierenden Codebereich verfügbar gemacht werden kann.

Fehler-ID: BC30921

So beheben Sie diesen Fehler

  • Ändern Sie die Zugriffsebenen der Klassen oder Schnittstellen, sodass der abgeleitete Typ nicht die Zugriffsebene des internen Typs erweitert.

    – oder –

  • Wenn Sie die Zugriffsebenen nicht ändern können, verwenden Sie den internen Typ nicht als Typargument beim Erstellen der Basisklasse oder Basisschnittstelle.

Siehe auch

Konzepte

Grundlagen der Vererbung

Zugriffsebenen in Visual Basic

Generische Typen in Visual Basic

Referenz

Inherits-Anweisung

Typenliste