¿Cuáles son las consecuencias del código que NO cumple con CLS en.NET?
compiler-warnings cls-compliant (2)
Básicamente, su clase puede no ser accesible (o puede actuar de manera extraña, como que los números positivos grandes se tratan como negativos), cuando se usa con algunos lenguajes .NET. No puedo decir qué idiomas podrían ser.
Por ejemplo, no creo que se requiera un idioma para reconocer un identificador que comience con un guión bajo. C # lo permite, por lo que está a salvo allí, pero para otros idiomas, "_AnIdentifier" puede estar oculto o tener un nombre generado por el sistema.
Tengo un par de persistentes advertencias de compilación para una aplicación que porté desde VB6 hace un tiempo con respecto a CLS-Compliance, que incluye:
Name ''_AnIdentifier'' is not CLS-Compliant.
Type of parameter ''myType'' is not CLS-Compliant.
A pesar de esto, mi aplicación parece funcionar bien desde clientes COM y Managed. He visto varios artículos que describen qué hacer para que el código cumpla con CLS y probablemente continuaré haciéndolo de todos modos para deshacerme de las persistentes advertencias, pero tengo curiosidad por saber cuáles son los inconvenientes del código que no cumple con CLS en la práctica. ¿condiciones? ¿Qué limitaciones es esta imposibilidad que aún no he descubierto?
Me he encontrado con problemas con las herramientas de ofuscación que generan código ofuscado incorrecto cuando el código que no es compatible con CLS está ofuscado.