摘要: 前言 预计在 2024 年 11 月,C# 13 将与 .NET 9 一起正式发布。今年的 C# 更新主要集中在 ref struct 上进行了许多改进,并添加了许多有助于进一步提高生产力的便利功能。 本文将介绍预计将在 C# 13 中添加的功能。 注意:目前 C# 13 还未正式发布,因此以下内容 阅读全文
posted @ 2024-07-27 01:16 hez2010 阅读(3703) 评论(10) 推荐(25) 编辑
摘要: 前言 Windows 自从很久以来就有一个叫做 COM 的 Native ABI。这是一套面向对象的 ABI,在此之上 Windows 基于 COM ABI 暴露了各种各样的 API,例如 Management API、Shell API 和 DirectX API 就是典型。COM 自然不仅局限于 阅读全文
posted @ 2024-02-21 19:51 hez2010 阅读(1872) 评论(2) 推荐(16) 编辑
摘要: .NET NativeAOT 指南 随着 .NET 8 的发布,一种新的“时尚”应用模型 NativeAOT 开始在各种真实世界的应用中广泛使用。 除了对 NativeAOT 工具链的基本使用外,“NativeAOT”一词还带有原生世界的所有限制,因此您必须知道如何处理这些问题才能正确使用它。 在这 阅读全文
posted @ 2024-01-31 18:00 hez2010 阅读(4026) 评论(12) 推荐(59) 编辑
摘要: 背景 2008 年前后的 Midori 项目试图构建一个以 .NET 为用户态基础的操作系统,在这个项目中有很多让 CLR 以及 C# 的类型系统向着适合系统编程的方向改进的探索,虽然项目最终没有面世,但是积累了很多的成果。近些年由于 .NET 团队在高性能和零开销设施上的需要,从 2017 年开始 阅读全文
posted @ 2022-11-01 16:35 hez2010 阅读(6431) 评论(47) 推荐(104) 编辑
摘要: 前言 .NET 7 的开发还剩下一个多月就要进入 RC,C# 11 的新特性和改进也即将敲定。在这个时间点上,不少新特性都已经实现完毕并合并入主分支 C# 11 包含的新特性和改进非常多,类型系统相比之前也有了很大的增强,在确保静态类型安全的同时大幅提升了语言表达力。 那么本文就按照方向从 5 个大 阅读全文
posted @ 2022-07-10 00:11 hez2010 阅读(8538) 评论(32) 推荐(60) 编辑
摘要: 前言 很多人一谈到 MSBuild,脑子里就会出现 “XML”、“只能用 VS 的属性框图形界面操作”、“可定制性和扩展性差” 和 “性能低” 等印象,但实际上这些除了 “XML” 之外完全都是刻板印象:这些人用着 Visual Studio 提供的图形界面,就完全不愿意花个几分钟时间翻翻文档去理解 阅读全文
posted @ 2022-05-19 18:11 hez2010 阅读(2856) 评论(18) 推荐(46) 编辑
摘要: 前言 C# 11 中即将到来一个可以让重视性能的开发者狂喜的重量级特性,这个特性主要是围绕着一个重要底层性能设施 ref 和 struct 的一系列改进。 但是这部分的改进涉及的内容较多,不一定能在 .NET 7(C# 11)做完,因此部分内容推迟到 C# 12 也是有可能的。当然,还是很有希望能在 阅读全文
posted @ 2022-04-21 14:30 hez2010 阅读(5375) 评论(18) 推荐(36) 编辑
摘要: 前言 自从 2017 年 C# 7.0 版本开始引入声明模式和常数模式匹配开始,到 2022 年的 C# 11 为止,最后一个板块列表模式和切片模式匹配也已经补齐,当初计划的模式匹配内容已经基本全部完成。 C# 在模式匹配方面下一步计划则是支持活动模式(active pattern),这一部分将在本 阅读全文
posted @ 2022-03-04 11:03 hez2010 阅读(7567) 评论(19) 推荐(33) 编辑
摘要: 前言 开头防杠:.NET 的基础库、语言、运行时团队从来都是相互独立各自更新的,.NET 6 在基础库、运行时上同样做了非常多的改进,不过本文仅仅介绍语言部分。 距离上次介绍 C# 10 的特性已经有一段时间了,伴随着 .NET 6 的开发进入尾声,C# 10 最终的特性也终于敲定了。总的来说 C# 阅读全文
posted @ 2021-08-12 16:35 hez2010 阅读(17168) 评论(42) 推荐(69) 编辑
摘要: 引子 .NET 6 开始初步引入 PGO。PGO 即 Profile Guided Optimization,通过收集运行时信息来指导 JIT 如何优化代码,相比以前没有 PGO 时可以做更多以前难以完成的优化。 下面我们用 .NET 6 的 nightly build 版本 6.0.100-rc. 阅读全文
posted @ 2021-07-28 13:38 hez2010 阅读(8585) 评论(32) 推荐(70) 编辑