BC30909 : « <membername> » ne peut pas exposer le type « <typename> » en dehors du projet via <containertype> « <containertypename> »

Une variable, un paramètre de procédure ou un retour de fonction est exposé en dehors de son conteneur, mais il est déclaré comme un type qui ne doit pas être exposé en dehors du conteneur.

Le code squelette suivant montre une situation qui génère cette erreur.

Private Class privateClass
End Class
Public Class mainClass
    Public exposedVar As New privateClass
End Class

Type déclaré Protected, Friend, Protected Friend ou Private destiné à avoir un accès limité en dehors de son contexte de déclaration. Son utilisation comme type de données d’une variable avec un accès moins restreint serait contraire à cet objectif. Dans le code squelette précédent, exposedVar est Public et expose privateClass au code qui ne doit pas y avoir accès.

ID d’erreur : BC30909

Pour corriger cette erreur

  • Modifiez le niveau d’accès de la variable, du paramètre de procédure ou de la fonction pour qu’il soit au moins aussi restrictif que le niveau d’accès de son type de données.

Voir aussi