我对 .NET Framework 中CLS (公共语言规范)的用途感到困惑。
我的理解是,使用 .NET,我们可以用一种语言编写库并以另一种语言使用它,并且 CLR 支持此功能。我确实知道 CLS 的目的是与其他对象完全交互,而不管它们是用什么语言实现的。
CLS 到底是什么?它的目的是什么?
我对 .NET Framework 中CLS (公共语言规范)的用途感到困惑。
我的理解是,使用 .NET,我们可以用一种语言编写库并以另一种语言使用它,并且 CLR 支持此功能。我确实知道 CLS 的目的是与其他对象完全交互,而不管它们是用什么语言实现的。
CLS 到底是什么?它的目的是什么?
这CLS
是针对组件开发人员以及编译器编写者的指南。它指定了什么是允许的,什么是不允许的,以便生成组件,并构建对语言的支持,以便它们是可移植的 - 并且完全兼容可以从所有CLS
兼容的语言中使用/交互,这些语言可以在CLR
.
虽然CLR
具有由实现公开和强制执行的规范。这CLS
只是一个指导方针。您仍然可以编写破坏 . 的组件CLS
,但在CLR
. 但在这种情况下,它们可能无法与某些语言互操作。
显然,这CLS
对于编译器编写者和语言设计者来说非常重要。但是,即使作为组件开发人员,CLS
如果您正在努力实现完全的互操作性,那么保持在界限内也很重要。
我认为使用.Net,我们可以用一种语言编写一个库并用另一种语言使用它,为此有CLR,CLS到底是什么,它的目的是什么?
虽然这种语言集成非常棒,但事实是编程语言非常不同,所以为了帮助您或CLR
实现这一点 -
Microsoft 已经定义了公共语言规范(
CLS
),它为编译器供应商详细说明了他们的编译器必须支持的最小功能集,如果这些编译器要生成与由其他 CLS 兼容语言在 CLR 之上编写的其他组件兼容的类型。