《C#编程入门与应用》— 1.2.4 .NET 框架的体系结构

举报
清华大学出版社 发表于 2019/10/09 12:11:14 2019/10/09
【摘要】 本节书摘来自清华大学出版社《C#编程入门与应用》一书中第一章,第1.2.4节,作者是李 鑫 祝惠娟。

1.2.4 .NET 框架的体系结构 

       C# 程序在.NET 框架上运行,它是Windows 的一个不可或缺的组件,包括一个称为公 共语言运行库的虚拟执行系统和一组统一的类库。CLR 是 Microsoft 对 Common Language Infrastructure(CLI) 的商业实现。CLI 是一种国际标准,是用于创建语言和库在其中无缝协同 工作的执行和开发环境的基础。 

       用 C# 编写的源代码被编译为一种符合CLI 规范的中间语言(IL)。IL 代码与资源( 例 如位图和字符串) 一起作为一种称为程序集的可执行文件存储在磁盘上,通常具有的扩展 名为.exe 或 .dll。程序集包含清单,提供有关程序集的类型、版本、区域性和安全要求等 信息。 

       执行C# 程序时,程序集将加载到CLR 中,这可能会根据清单中的信息执行不同的操 作。然后,如果符合安全要求,CLR 就会执行实时(JIT) 编译以将IL 代码转换为本机机器 指令。CLR 还提供与自动垃圾回收、异常处理和资源管理有关的其他服务。由 CLR 执行的 代码有时称为“托管代码”,它与编译为面向特定系统的本机机器语言的“非托管代码”相 对应。图 1-1 阐释了C# 源代码文件、.NET 框架类库、程序集以及CLR 的编译时与运行时 的关系。 

       语言互操作性是.NET Framework 的一项主要功能。由于C# 编译器生成的IL 代码符合 公共类型规范 (CTS),因此,从 C# 生成的 IL 代码可以与从 Visual Basic、Visual C++ 的 .NET版本或者其他20多种符合CTS的语言生成的代码进行交互。单一程序集可能包含用不同.NET 语言编写的多个模块,并且类型可以相互引用,就像它们是用同一种语言编写的一样。

image.png

图 1-1 .NET 框架的体系结构 

        除了运行时服务之外,.NET Framework还包含一个由4000多个类组成的内容详尽的库, 这些类被组织为命名空间,为从文件输入和输出、字符串操作、XML 分析到Windows 窗体 控件的所有内容提供各种有用的功能。典型的 C# 应用程序使用 .NET Framework 类库广泛地 处理常见的日常任务。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。