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