BC40032 : Le type sous-jacent <typename> de l’enum n’est pas conforme CLS

Le type de données spécifié pour cette énumération ne fait pas partie de l’Indépendance du langage et des composants indépendants du langage (CLS). Il ne s’agit pas d’une erreur au sein de votre composant, car le .NET Framework et Visual Basic prennent en charge ce type de données. Toutefois, un autre composant écrit dans du code strictement conforme CLS risque de ne pas prendre en charge ce type de données. Un tel composant risque de ne pas pouvoir interagir correctement avec votre composant.

Les types de données Visual Basic suivants ne sont pas conformes CLS :

Par défaut, ce message est un avertissement. Pour plus d’informations sur le masquage des avertissements ou le traitement des avertissements en tant qu’erreurs, consultez Configuring Warnings in Visual Basic.

ID d’erreur : BC40032

Pour corriger cette erreur

  • Si votre composant s’interface uniquement avec d’autres composants .NET Framework, ou s’il ne s’interface pas avec d’autres composants, vous n’avez rien à modifier.

  • Si vous interfacez avec un composant non écrit pour le .NET Framework, vous pourrez probablement déterminer, en réfléchissant ou en vous aidant de la documentation, s’il prend en charge ce type de données. Si c’est le cas, vous n’avez rien à changer.

  • Si vous interfacez avec un composant qui ne prend pas en charge ce type de données, vous devez le remplacer par le type conforme CLS le plus proche. Par exemple, vous pouvez utiliser UInteger au lieu de Integer si vous n’avez pas besoin de la plage de valeurs située au-dessus de 2 147 483 647. Si vous avez besoin de la plage étendue, vous pouvez remplacer UInteger par Long.

  • Si vous interfacez avec des objets Automation ou COM, n’oubliez pas que certains types ont des largeurs de données différentes de celles de .NET Framework. Par exemple, uint correspond souvent à 16 bits dans d’autres environnements. Si vous passez un argument de 16 bits à un tel composant, déclarez-le comme UShort et non UInteger dans votre code Visual Basic managé.

Voir aussi