.NET框架中CLS的目的是什么?

4 .net specifications cls

我对.NET Framework中CLS(公共语言规范)的目的感到困惑.

我的理解是,使用.NET,我们可以用一种语言编写一个库并以另一种语言使用它,并且CLR可以实现这一功能.我知道CLS的目的是与其他对象完全交互,无论它们实现的语言如何.

什么是CLS; 它的目的是什么?

Mik*_*scu 5

CLS是一个针对组件开发人员以及编译器编写者的指南.它指定了生成组件所允许的内容和不允许的内容,并以可移植的方式构建对语言的支持 - 并且完全兼容,可以使用CLS可以在其中运行的所有兼容语言来使用/交互.CLR.

虽然CLR具有由实现公开和强制执行的规范.这CLS只是一个指导方针.您仍然可以编写打破该组件的组件CLS,但在该组件中可以正常工作CLR.但在这种情况下,它们可能无法与某些语言互操作.

显然,这CLS对编译器编写者和语言设计者来说非常重要.但是,即使作为组件开发人员,CLS如果您正在努力实现完全的互操作性,那么保持这一点非常重要.