写在前面
本文是 .NET 新特性系列第四篇。.NET 8(2023-11)是仍在支持期内的 LTS。三大亮点:主构造函数、集合表达式,以及 Native AOT 在 .NET 7 首次发布后于 .NET 8 获得 ASP.NET Core 支持并继续完善。
加上 TimeProvider(可测试的时间)、Frozen 集合等,.NET 8 仍适合维护既有 LTS 项目;新项目还应结合 .NET 10 LTS 的支持周期选择目标版本。
一、版本概览
| |
二、C# 12 语言特性(重点)
2.1 主构造函数(primary constructors)⭐
类/结构体的构造参数直接成为类成员(C# 终于有,之前 VB / Record 有):
| |
| |
2.2 集合表达式(collection expressions)⭐
统一所有集合的初始化语法:
| |
| |
2.3 using 别名任意类型
| |
2.4 ref readonly 参数
| |
2.5 其他
| |
三、运行时与性能
3.1 Native AOT 在 Web 与跨平台场景继续扩展 ⭐
| |
| |
3.2 Server GC 动态适应
| |
3.3 性能改进
| |
四、BCL 改进(重头)
4.1 TimeProvider(可测试的时间)⭐
| |
4.2 Frozen 集合 ⭐
| |
4.3 SearchValues
| |
4.4 System.Text.Json 多态
| |
4.5 其他
| |
五、ASP.NET Core 8
| |
六、升级建议
| |
七、小结
.NET 8 是成熟的 LTS:
- C# 12:主构造函数、集合表达式、using 别名任意类型、ref readonly
- 运行时:NativeAOT 正式、Server GC 动态适应、性能大幅提升
- BCL:TimeProvider(可测试时间)、Frozen 集合、SearchValues、JSON 多态、Keyed DI
- ASP.NET Core:Blazor United、Server GC 默认、AOT
- 定位:仍受支持的 LTS,支持期至 2026-11;新项目通常优先评估 .NET 10 LTS
下一篇讲 .NET 9(C# 13):params 集合、Lock 类型、HybridCache。