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