框架 class 库 (FCL) 是为 C# 和 C++ 单独实现的吗?

is framework class library(FCL) implemented separately for C# and C++?

我刚刚开始 C# . net 编程,我读过的一本书说 FCL 对许多任务有很多有用的 类。

我的问题是,这是否意味着微软已经为不同的 .net 兼容语言创建了不同版本的 FCL,或者 FCL 被编写为 MSIL(微软中间语言)以便只有一份 FCL 是需要吗?

不,只有一种实现方式。 .NET 的一个重要设计目标是使框架实现可用于许多 种语言。通过以独立于语言的格式对 .NET 程序集、元数据和代码的内容进行编码来强制执行。由 CLI 规范描述,Ecma-335。每个 .NET 编译器都遵循该标准,因此您用一种语言编写的代码可以被任何其他 .NET 语言编译器使用。

还有平台独立性,由即时编译器实现,它将程序集中的 MSIL 转换为与机器使用的处理器类型相匹配的机器代码。不像语言独立性那样灵活,这确实需要能够在机器操作系统上执行的 CLR 版本。并且可能不支持某些 FCL 功能,例如 WPF 只能在 Windows.

上使用