Question

J'ai quelques avertissements harcelants du compilateur pour une application que j'ai transférée depuis VB6 il y a quelque temps au sujet de la conformité à CLS, notamment:

Name '_AnIdentifier' is not CLS-Compliant.
Type of parameter 'myType' is not CLS-Compliant.

Malgré cela, mon application semble fonctionner correctement pour les clients COM et gérés. J'ai vu plusieurs articles décrivant ce qu'il faut faire pour rendre le code conforme à CLS et je vais probablement le faire quand même pour me débarrasser des avertissements lancinants, mais je suis curieux de savoir quels sont les inconvénients pratiques d'un code non conforme à CLS. termes? Quelles sont les limites de cette impostation que je n'ai pas encore découverte?

Était-ce utile?

La solution

En gros, votre classe peut ne pas être accessible (ou peut agir de manière étrange, telle que de grands nombres positifs étant traitée comme négative), lorsqu’elle est utilisée avec certains langages .NET. Je ne peux pas dire quelles langues ils pourraient être.

Par exemple, je ne pense pas qu'un langage soit nécessaire pour reconnaître un identifiant commençant par un trait de soulignement. C # le permet, donc vous êtes en sécurité là-bas, mais pour les autres langues, " _AnIdentifier " peut être masqué ou avoir un nom généré par le système.

Autres conseils

J'ai rencontré des problèmes avec les outils d’obscurcissement générant un code obscurci incorrect lorsque le code non conforme à CLS est obscurci.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top