面试准备1(.net基础知识)

C# 语言介绍

多项 C# 功能有助于构造可靠耐用的应用程序:
垃圾回收可自动回收无法访问的未使用对象占用的内存;
异常处理提供了一种结构化的可扩展方法来执行错误检测和恢复;
C# 语言的类型安全设计禁止读取未初始化的变量、为范围之外的数组编制索引或执行未检查的类型转换。

.NET Framework 平台体系结构

C# 程序在 .NET Framework 上运行,这是 Windows 不可或缺的一部分,包括名为 “ 公共语言运行时 (CLR)” 的虚执行系统和一组统一的类库。 CLR 是由 Microsoft 执行的公共语言基础结构 (CLI) 的商业实现, CLI 是作为执行和开发环境(语言和库在其中无缝协作)创建依据的国际标准。

用 C# 编写的源代码被编译成符合 CLI 规范的中间语言(IL)。 IL 代码和资源(如位图和字符串)存储在磁盘上名为 “ 程序集 ” 的可执行文件(扩展名通常为 .exe 或 .dll )中。 程序集包含一个介绍程序集的类型、版本、区域性和安全要求的清单。

当 C# 程序执行时,程序集会加载到 CLR 中,可能根据清单中的信息执行各种操作。 然后,如果满足安全要求, CLR 会直接执行实时 (JIT) 编译,将 IL 代码转换成本机指令。 CLR 还提供其他与自动垃圾回收、异常处理和资源管理相关的服务。 CLR 执行的代码有时称为 “ 托管代码 ” (而不是 “ 非托管代码 ” ),被编译成面向特定系统的本机语言。 下图展示了 C# 源代码文件、 .NET Framework 类库、程序集和 CLR 的编译时和运行时关系。
面试准备1(.net基础知识)
语言互操作性是 .NET Framework 的一项重要功能。 由于 C# 编译器生成的 IL 代码符合公共类型规范 (CTS) ,因此C# 生成的 IL 代码可以与 .NET 版本 Visual Basic 、 Visual C++ 或其他任何符合 CTS 的超过 20 种语言生成的代码
进行交互。 一个程序集可能包含多个用不同 .NET 语言编写的模块,且类型可以相互引用,就像是用同一种语言编写的一样。

除了运行时服务之外, .NET Framework 还包括一个由 4000 多个已整理到命名空间中的类构成的扩展库,这些类提供各种实用功能,包括文件输入输出、字符串控制、 XML 分析和 Windows 窗体控件。 典型的 C# 应用程序广泛使用 .NET Framework 类库来处理常见的 “ 管道 ” 零碎工作。