<Name des abgeleiteten Typs> erweitert den Zugriff von Typ '<Name des internen Typs>' außerhalb der Assembly 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>' outside the assembly

Eine abgeleitete Klasse oder Schnittstelle versucht, die Zugriffsebene eines eingeschränkten 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 baseClass(Of t)
End Class
Public Class derivedClass
    Inherits baseClass(Of restrictedStructure)
End Class
Friend Structure restrictedStructure
    Dim firstMember As Integer
End Structure

Der Zugriff von Code außerhalb der Assembly auf restrictedStructure ist nicht zulässig. Jedoch ist der Zugriff auf derivedClass durch jeden Code zulässig, der auf sie verweisen kann. Daher kann derivedClass nicht baseClass erben, wenn sie als Argumenttyp restrictedStructure verwendet, weil hierdurch restrictedStructure für Code in jeder Assembly verfügbar gemacht werden kann.

Fehler-ID: BC30922

So beheben Sie diesen Fehler

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

    – oder –

  • Wenn Sie die Zugriffsebenen nicht ändern können, verwenden Sie den eingeschränkten 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