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