'<derivedtypename>' não pode herdar de <type> '<constructedbasetypename>' porque ele expande o acesso do tipo '<internaltypename>' para <region> '<regionname>'
Uma classe ou interface derivada tenta expandir o nível de acesso de um tipo interno usando-o como um argumento de tipo para uma classe base ou interface.
O código a seguir pode gerar esse erro.
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
O código externo containingClass
não tem permissão para acessar internalStructure
. No entanto, derivedClass
pode ser acessado de qualquer código no mesmo assembly. Portanto, derivedClass
não pode herdar baseClass
se ele usa internalStructure
como um argumento de tipo, pois isso pode expor internalStructure
em toda a região do código definidor.
ID do erro: BC30921
Ajuste os níveis de acesso das classes ou interfaces para que o tipo derivado não expanda o nível de acesso do tipo interno.
-ou-
Se você não puder ajustar os níveis de acesso, não use o tipo interno como um argumento de tipo ao construir a classe base ou a interface.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: