" no puede heredar del "" porque amplía el acceso del tipo "" a "" - Visual Basic | Microsoft Learn"
data-list-item-url="/dotnet/visual-basic/misc/bc30921"
data-list-source="module"
data-resource-type=""
data-bi-name="add-to-list"
aria-describedby="popover-content"
aria-expanded="false"
>
Guardar
"<nombreTipoDerivado>" no puede heredar del <tipo> "<nombreTipoBaseConstruido>" porque amplía el acceso del tipo "<nombreTipoInterno>" a la <región> "<nombreRegión>"
Una clase o interfaz derivada intenta ampliar el nivel de acceso de un tipo interno. Para ello, lo usa como un argumento de tipo para una clase base o una interfaz.
El código siguiente puede generar este error.
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
El código situado fuera de containingClass
no tiene permitido acceder a internalStructure
. Sin embargo, se puede acceder a derivedClass
desde cualquier código del mismo ensamblado. Por lo tanto, derivedClass
no puede heredar baseClass
si usa internalStructure
como un argumento de tipo, porque podría exponer internalStructure
en toda la región de código de definición.
Identificador de error: BC30921
Ajuste los niveles de acceso de las clases o las interfaces para que el tipo derivado no amplíe el nivel de acceso del tipo interno.
O bien
Si no puede ajustar los niveles de acceso, no use el tipo interno como argumento de tipo al construir la clase base o la interfaz.