Partager via


'<NomTypeDérivé>' ne peut pas hériter de <type> '<NomTypeConstruitDeBase>', car il étend l'accès du type '<NomTypeInterne>' en dehors de l'assembly

Mise à jour : novembre 2007

'<derivedtypename>' cannot inherit from <type> '<constructedbasetypename>' because it expands the access of type '<internaltypename>' outside the assembly

Une classe ou une interface dérivée essaie d'étendre le niveau d'accès d'un type restreint en l'utilisant comme argument de type dans une classe ou une interface de base.

Le code suivant peut générer ce message d'erreur.

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

Le code à l'extérieur de l'assembly n'est pas autorisé à accéder à restrictedStructure. Toutefois, tout code qui peut le référencer peut accéder à derivedClass. Par conséquent, derivedClass ne peut pas hériter de baseClass si restrictedStructure est utilisé comme argument de type, car cela peut exposer restrictedStructure au code d'un assembly.

ID d'erreur : BC30922

Pour corriger cette erreur

  • Modifiez les niveaux d'accès des classes ou des interfaces afin que le type dérivé n'étende pas le niveau d'accès du type restreint.

    - ou -

  • Si vous ne pouvez pas modifier les niveaux d'accès, n'utilisez pas le type restreint comme argument de type lors de la construction de la classe ou de l'interface de base.

Voir aussi

Concepts

Éléments fondamentaux de l'héritage

Niveaux d'accès dans Visual Basic

Types génériques en Visual Basic

Référence

Inherits, instruction

Liste de types