【问题标题】:What is the purpose of the CLS in the .NET framework?.NET 框架中 CLS 的用途是什么?
【发布时间】:2013-07-27 21:44:46
【问题描述】:
我对 .NET Framework 中 CLS(公共语言规范)的用途感到困惑。
我的理解是,使用 .NET,我们可以用一种语言编写库并以另一种语言使用它,并且 CLR 支持此功能。我确实知道 CLS 的目的是与其他对象完全交互,而不管它们是用什么语言实现的。
究竟什么是 CLS;它的目的是什么?
【问题讨论】:
标签:
.net
specifications
cls
【解决方案1】:
CLS 是针对组件开发人员和编译器编写者的指南。它指定了什么是允许的,什么是不允许的,以便生成组件,并构建对语言的支持,以便它们是可移植的 - 并且完全兼容所有CLS兼容的语言可以使用/交互在CLR 中运行。
虽然CLR 具有由实现公开和强制执行的规范。 CLS 只是一个指导方针。您仍然可以编写破坏CLS 的组件,但在CLR 中可以正常工作。但在这种情况下,它们可能无法与某些语言互操作。
显然,CLS 对于编译器作者和语言设计者来说非常重要。但即使作为组件开发人员,如果您正在努力实现完全的互操作性,请务必遵守CLS 的规定。
【解决方案2】:
我认为使用 .Net,我们可以用一种语言编写一个库,然后用另一种语言来使用它,为此,有 CLR,什么是 CLS
确切地说,它的目的是什么?
虽然这种语言集成非常棒,但事实上编程语言是非常不同的,所以为了帮助您或让CLR 实现这一点-
Microsoft 已经定义了通用语言规范 (CLS)
编译器供应商的详细信息 他们的最小功能集
编译器必须支持,如果这些编译器要生成类型
与其他 CLS 兼容编写的其他组件兼容
CLR 之上的语言。