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

时间:2013-03-02 18:24:26

标签: .net specifications cls

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

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

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

2 个答案:

答案 0 :(得分:5)

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

中运行

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

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

答案 1 :(得分:0)

  

我认为使用.Net,我们可以用一种语言编写一个库,并用另一种语言编写,这样就有CLR,什么是CLS   确切地说,它的目的是什么?

虽然这种语言集成非常棒,但事实是编程语言非常不同,所以为了帮助你或使CLR实现这一点 -

  

Microsoft已定义了公共语言规范CLS)   编译器供应商的详细信息是他们的最小功能集   如果这些编译器要生成类型,编译器必须支持   与其他兼容CLS的其他组件兼容   CLR之上的语言。