Qué atributo CLSCompliant cuidado para versiones anteriores de los lenguajes .NET?

StackOverflow https://stackoverflow.com/questions/960622

  •  12-09-2019
  •  | 
  •  

Pregunta

Por ejemplo, he leído que Visual Basic .NET no tenía operador de sobrecarga antes, así que no sería capaz de usar unos tipos operadores sobrecargados, si no se proporcionan como métodos normales también (Añadir, en lugar de operador + ).

Ahora que VB tiene esta característica, sería CLSCompliant atribuir atención si tiene métodos estáticos normales como suma, resta en lugar de sobrecargas de operadores solamente?

He escrito algunos tipos sin los métodos estáticos verbales, pero sólo sobrecargas de operadores, y el compilador de C # no le importaba. Si era un problema, sería avisarme, ¿verdad?

¿Fue útil?

Solución

compatibilidad con CLS no tiene que ver con mayor lo - es simplemente el conjunto básico de funcionalidades que debe razonablemente esperar una arbitraria idioma para manejar (al consumir su código). Por ejemplo, no es razonable suponer que una lengua es entre mayúsculas y minúsculas, por lo que los miembros de "Foo" y "foo", mientras social en C #, no son compatible con CLS.

El compilador le advertirá, si se solicita a; añadir [CLSCompliant(true)] a un tipo / montaje / etc y se verificará su reclamo.

Si es un ISV, es posible que desee pensar en la compatibilidad con CLS. Si está escribiendo código sólo por sí mismo y el equipo, es probable que no necesita la sobrecarga.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top