Auf Englisch lesen

Freigeben über


'<abgeleiteter Typname>' kann nicht von <Typ> '<konstruierte Basistypname>' erben, da er den Zugriff des Typs '<internen Typname>' außerhalb der Assembly erweitert

Eine abgeleitete Klasse oder Schnittstelle versucht, die Zugriffsebene eines eingeschränkten Typs zu erweitern, indem sie diesen als Typargument für eine Basisklasse oder Schnittstelle 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  

Code außerhalb der Assembly darf nicht auf die restrictedStructurezugreifen. Allerdings kann jeder Code auf die derivedClass zugreifen, der darauf verweisen kann. Daher kann die derivedClass die baseClass nicht erben, wenn sie die restrictedStructure als Typargument verwendet, da auf diese Weise die restrictedStructure für Code in jeder beliebigen Assembly verfügbar gemacht würde.

Fehler-ID: BC30922

So beheben Sie diesen Fehler

  • Passen Sie die Zugriffsebenen der Klassen oder Schnittstellen so an, dass der abgeleitete Typ die Zugriffsebene des eingeschränkten Typs nicht erweitert.

    Oder

  • Wenn Sie die Zugriffsebenen nicht anpassen können, verwenden Sie beim Erstellen der Basisklasse oder Schnittstelle den eingeschränkten Typ nicht als Typargument.

Siehe auch