大家好,我是刚子。
上周微软放出了 .NET 11 Preview 3,这是 .NET 11 在 2026 年 11 月正式发布前的第三个预览版。看完更新内容后,我的第一反应是:这波升级不仅是修修补补,而是实实在在能让你写出更快、更稳代码的变化。
今天刚子就把这个预览版里最值得关注的几个更新给你捋一捋,方便你评估要不要提前尝鲜。

一、C# 15:Union 类型补齐 IDE 体验
C# 15 最大的语法亮点------联合类型(Union Type),之前在 Preview 2 中已加入编译器支持,Preview 3 则补齐了 IDE 体验。简单来说,union 类型允许你声明一个值必须是固定类型集合中的某一种,编译器还会强制你穷尽模式匹配。
现在智能感知、重构、导航全链路可用,写 union 类型时体验大幅提升。划重点 :预览版中仍需要手动添加 UnionAttribute 和 IUnion 接口的 Polyfill 代码,框架正式版会内置。
csharp
// union 类型示例
union Result<T>
{
Success(T Value);
Error(string Message);
}
二、运行时:异步更轻 + JIT 更聪明 + WASM 更强
Runtime Async 门槛大降
Preview 3 移除了对 EnablePreviewFeatures 的依赖,现在只需设置 runtime-async=on 即可启用运行时原生异步支持。这意味着 NativeAOT 和 ReadyToRun 全面支持异步续期对象复用策略,高频场景下的内存分配压力明显降低,对云原生部署非常友好。运行时原生异步还能产生更简洁的堆栈跟踪和更低的开销。
JIT 持续优化
- switch 多目标表达式自动折叠 :像
x is 0 or 1 or 2这类模式匹配,编译后直接变成无分支检查,执行路径更干脆。 - 倒序索引边界检查剔除 :
values[^1] + values[^2]这类写法的冗余检查被自动优化。 - x86 老硬件转换提速 :即使没有 AVX-512,
uint到float/double的转换也能吃上性能红利。
WebAssembly 浏览器托管进阶
CoreCLR 成为 .NET WebAssembly SDK 的目标库,WebCIL 载荷加载机制让调试符号与堆栈跟踪更清晰,float[] / Span 跨 JS 边界直传,不再需要手动转换,数值计算场景开发体验大幅提升。划重点 :NativeAOT 输出规范有变更,Unix 平台生成的动态库现在遵循传统 lib 前缀(如 libMyLib.so),现有构建脚本记得同步更新。
三、基础类库:JSON 更自由 + I/O 能力再扩展
System.Text.Json 命名与忽略策略升级
- 新增
JsonNamingPolicy.PascalCase支持。 - 支持
[JsonNamingPolicy]成员级覆盖,全局驼峰 + 个别字段帕斯卡可以混用了。 - 支持
[JsonIgnore(Condition = ...)]类型级默认行为,模型层统一定义忽略策略,序列化配置代码少写一半。
Zstandard 正式归位
ZstandardStream 移入 System.IO.Compression 命名空间,与 DeflateStream / GZipStream 同级管理,引用更简洁。Zstandard 压缩算法比 gzip 和 brotli 更快,压缩率相近。
低层 I/O 能力增强
- ZIP 读取自动校验 CRC32,损坏文件提前抛出
InvalidDataException,拒绝"静默吞错"。 SafeFileHandle.Type可识别句柄类型(文件/管道/套接字)。CreateAnonymousPipe支持读写端独立异步配置。RandomAccess兼容非可寻址句柄,管道、套接字也能用Read/Write。
正则表达式更新
新增 RegexOptions.AnyNewLine,^、$、. 现在能识别 \r\n、\u0085、\u2028 等全部换行符,跨平台文本处理不再踩坑。
四、SDK & ASP.NET Core:效率狂飙
- 解决方案筛选器(.slnf)CLI 直编 :
dotnet sln MyApp.slnf add,不用再手动在 VS 里勾选。 - dotnet run -e 选项:直接从命令行传递环境变量。
- ASP.NET Core Kestrel 吞吐量提升 20%--40%:在端口扫描或客户端乱配的场景下提升明显。
- dotnet new webworker 模板:可以把重活扔给 Web Worker,UI 线程不再被卡住。
- EF Core:支持向量查询,可以做语义搜索。
五、AI & 云原生:方向级变化
- AI 能力正式进入 .NET 核心,支持统一调用大模型(OpenAI API / 本地模型),不再关心 SDK 差异,可随时切换模型。
- 云原生能力变成默认能力,原生集成 OpenTelemetry,自动追踪;容器 / Kubernetes 适配更好;.NET Aspire 提供微服务编排。
- 支持 BFloat16 数值计算。
结语:.NET 11 Preview 3 不是那种改改版本号的敷衍更新。Runtime Async 让异步代码更轻量,JIT 优化让日常代码跑得更快,Zstandard 压缩让日志和 API 传输更高效,加上 AI 能力的原生集成------这波升级确实值得期待。
我是刚子,一个紧跟 .NET 技术前沿的程序员。咱们下回见!
原文链接:https://www.codeobservatory.cn/Post/dotnet-11-preview-3-csharp-15-union-types-kestrel-performance