Partager via


Le type de retour de la fonction '<NomProcédure>' n'est pas conforme CLS

Mise à jour : novembre 2007

Return type of function '<procedurename>' is not CLS-compliant

Une procédure Function est marquée comme <CLSCompliant(True)>, mais retourne un type qui est marqué comme <CLSCompliant(False)>, qui n'est pas marqué ou qui ne qualifie pas car son type n'est pas conforme.

Pour qu'une procédure soit conforme au Spécification CLS (Common Language Specification) (CLS), elle doit utiliser uniquement des types conformes CLS. Cela s'applique aux types des paramètres, au type de retour et aux types de toutes ses variables locales.

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

Lorsque vous appliquez CLSCompliantAttribute à un élément de programmation, vous affectez au paramètre isCompliant de l'attribut la valeur True ou False pour indiquer la conformité ou la non-conformité. Il n'existe pas de valeur par défaut pour ce paramètre et vous devez fournir une valeur.

Si vous n'appliquez pas CLSCompliantAttribute à un élément, il est considéré comme étant non conforme.

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 Configuration d'avertissements en Visual Basic.

ID d'erreur : BC40027

Pour corriger cette erreur

  • Si la procédure Function doit retourner ce type particulier, supprimez CLSCompliantAttribute. La procédure ne peut pas être conforme CLS.

  • Si la procédure Function doit être conforme CLS, remplacez le type de retour par le type conforme CLS le plus proche. Par exemple, vous pouvez utiliser Integer au lieu de UInteger 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 utilisez des objets Automation ou COM, n'oubliez pas que certains types ont des largeurs de données différentes de celles dans le .NET Framework. Par exemple, int correspond souvent à 16 bits dans d'autres environnements. Si vous retournez un entier de 16 bits à un tel composant, déclarez-le comme type de données Short et non comme Integer dans votre code Visual Basic managé.

Voir aussi

Concepts

Écriture d'un code conforme CLS