4

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

我的理解是,使用 .NET,我们可以用一种语言编写库并以另一种语言使用它,并且 CLR 支持此功能。我确实知道 CLS 的目的是与其他对象完全交互,而不管它们是用什么语言实现的。

CLS 到底是什么?它的目的是什么?

4

2 回答 2

5

CLS是针对组件开发人员以及编译器编写者的指南。它指定了什么是允许的,什么是不允许的,以便生成组件,并构建对语言的支持,以便它们是可移植的 - 并且完全兼容可以从所有CLS兼容的语言中使用/交互,这些语言可以在CLR.

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

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

于 2013-03-02T18:32:39.260 回答
0

我认为使用.Net,我们可以用一种语言编写一个库并用另一种语言使用它,为此有CLR,CLS到底是什么,它的目的是什么?

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

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

于 2013-03-02T19:08:48.810 回答