c# - 框架类库(FCL) 是分别为C# 和C++ 实现的吗?

标签 c# c++ .net fcl

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

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

最佳答案

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

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

关于c# - 框架类库(FCL) 是分别为C# 和C++ 实现的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29159903/

相关文章:

c# - 使用 Throw Expression 附加事件

c# - 如何使用 Windows 窗体应用程序获取文本框中的文件路径?

C# 使用 MySql 数据库中的 true/false 来继续或显示错误

c# - WCF ChannelFactory.CreateChannel() 方法

c++ - 如何编写要在 main() 获得控制权之前执行的代码?

.net - 如何从 .Net/C# 或 PowerShell 以编程方式调用或执行 azure cli 命令?

C# 定时器不工作?

java - 数据包 : Effectively representing different packet types

c++ - 使用 Cygwin 编译 C++ 项目

c# - 避免在 foreach 循环中等待