'<derivedtypename>' nemůže dědit z <typu> '<constructedbasetypename>', protože rozšiřuje přístup typu '<internaltypename>' do <oblasti> '<regionname>'

Odvozená třída nebo rozhraní se pokusí rozšířit úroveň přístupu interního typu jeho použitím jako argument typu základní třídy nebo rozhraní.

Tuto chybu může vygenerovat následující kód.

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  

Kód mimo containingClass přístup není povolen internalStructure. derivedClass Lze však získat přístup z libovolného kódu ve stejném sestavení. Proto nelze děditbaseClass, derivedClass pokud se používá internalStructure jako argument typu, protože by mohl vystavit internalStructure v rámci definující oblasti kódu.

ID chyby: BC30921

Oprava této chyby

  • Upravte úrovně přístupu tříd nebo rozhraní tak, aby odvozený typ nezvětšil úroveň přístupu interního typu.

    nebo

  • Pokud nemůžete upravit úrovně přístupu, nepoužívejte při vytváření základní třídy nebo rozhraní interní typ jako argument typu.

Viz také