(2).net体系
一、C# 和CLR 和.Net Framework 的历史版本对照表
C#版本 | CLR版本 | Framework版本 |
1.0 | 1.0 | 1.0 |
1.2 | 1.1 | 1.1 |
2.0 | 2.0 | 2.0,3.0 |
3.0 | 2.0(sp2) | 3.5 |
4.0 | 4.0 | 4.0 |
5.0 | 4.5(基于CLR4.0) | 4.5 |
6.0 | 4.6(基于CLR4.0) | 4.6 |
7.0 | 4.6/4.7(基于CLR4.0) | 4.6/4.7 |
8.0 |
.net core coreCLR
二、C#新特性
https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-version-history
https://www.cnblogs.com/zq20/p/6323205.html
三、.net Framework
1.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 的编译时和运行时关系。
语言互操作性是 .NET Framework 的一项重要功能。 由于 C# 编译器生成的 IL 代码符合公共类型规范 (CTS),因此 C# 生成的 IL 代码可以与 .NET 版本 Visual Basic、Visual C++ 或其他任何符合 CTS 的超过 20 种语言生成的代码进行交互。 一个程序集可能包含多个用不同 .NET 语言编写的模块,且类型可以相互引用,就像是用同一种语言编写的一样。
除了运行时服务之外,.NET Framework 还包括一个由 4000 多个已整理到命名空间中的类构成的扩展库,这些类提供各种实用功能,包括文件输入输出、字符串控制、XML 分析和 Windows 窗体控件。 典型的 C# 应用程序广泛使用 .NET Framework 类库来处理常见的“管道”零碎工作。
2.net Framework 各版本
(1).net Framework 4.8
(2) .net Framework 4.7
(3) .net Framework 4.6
(4) .net Framework 4.5
(5) .net Framework 4.0
(6) .net Framework 3.5
(7) .net Framework 3.0
(8) .net Framework 2.0
四 .NET CORE
https://docs.microsoft.com/zh-cn/dotnet/framework/get-started/net-core-and-open-source 内附github开源地址
五、CLR
六、.NET 标准
运行