web-dev-qa-db-fra.com

Pourquoi devrais-je écrire du code conforme CLS?

J'ai trouvé beaucoup de pages sur la conformité CLS.

J'ai compris que la conformité CLS:

Beaucoup de gens écrivent que "si vous écrivez du code, vous devez l'écrire conforme CLS." Mais pour autant que je sache, il n'y a aucune raison d'utiliser la conformité CLS dans les logiciels génériques.

Ai-je raison ou ai-je raté quelque chose?

60
Luca

Si vous écrivez une bibliothèque ou un framework, il est logique de vous assurer que votre bibliothèque peut être utilisée à partir de n'importe quel langage CLR.

46
Remus Rusanu

La conformité CLS est particulièrement importante si vous distribuez des bibliothèques - en particulier, l'écriture conforme CLS garantit que vos bibliothèques seront utilisables par toutes les langues conformes CLS.

Par exemple, Visual Basic n'est pas sensible à la casse, alors que C # l'est. L'une des exigences de la conformité CLS est que les noms de membres publics (et protégés) ne doivent pas différer uniquement par cas, garantissant ainsi que vos bibliothèques peuvent être utilisées en toute sécurité par le code Visual Basic ou tout autre langage .NET qui ne se différencie pas en fonction de Cas.

42
Dathan

La réponse est de permettre une compatibilité maximale entre les langages .NET. CLS est le lingua franca qui permet aux assemblages C # de fonctionner avec F #, Iron Python, C++/CLI, VB.NET, Boo et tous les autres langages .NET. Sortez de cette limite et votre assemblage peut fonctionner correctement, mais pas nécessairement.

16
plinth

Il n'y a peut-être pas spécifique raison pour que votre code soit conforme CLS, mais les gens disent qu'il s'agit d'une "meilleure pratique" - quelque chose que vous devriez faire parce que c'est une bonne habitude, plutôt que d'être mesurablement mieux pour un scénario particulier.

En d'autres termes, c'est une bonne idée pour rendre votre code CLS conforme sauf si vous avez une raison pas à.

11
Adam Robinson