我刚开始使用C# . net
编程,我读过的一本书指出FCL
有许多用于许多任务的有用类。
我的问题是,这是否意味着微软为不同的.net兼容语言创建了不同版本的FCL,或者FCL是用MSIL
(微软中间语言)编写的,因此只需要一份FCL副本?
答案 0 :(得分:1)
不,只有一个实现。 .NET中一个强大的设计目标是使框架实现可用于许多语言。通过以独立于语言的格式对.NET程序集,元数据和代码的内容进行编码来实现。由CLI规范Ecma-335描述。每个.NET编译器都遵循该标准,因此您用一种语言编写的代码可以被任何其他.NET语言编译器使用。
通过即时编译器实现了平台独立性,它将程序集中的MSIL转换为与机器使用的处理器类型相匹配的机器代码。不像语言独立那样灵活,这需要一个能够在机器操作系统上执行的CLR版本。并且可能不支持某些FCL功能,例如WPF只能在Windows上使用。