C# .NET 周刊 |2026 年 4 月 3 期

C# .NET 周刊 |2026 年 4 月 3 期 2026-04-19 dotnet_week_26_4_3

国内文章

C# 15 类型系统改进:Union Types

https://www.cnblogs.com/hez2010/p/19891530/union-types-in-csharp-15

本文介绍 C# 15 的 union 类型。union 允许将值限定为若干封闭类型,并在 switch 中提供穷尽性检查。编译器把 union 展开为以 object 存储值的结构体,并生成 case 构造器和隐式从 case 到 union 的转换。文章用 Result、Option
和 OneOrMore 举例,展示可在 union 内添加方法与限制。case 可为类、接口、类型参数、可空或其他 union,且可重叠。声明禁止实例字段和公有单参数构造函数等。文中细节实用且清晰,但缺乏引用支持。

C# 如何减少代码运行时间:7 个实战技巧

https://www.cnblogs.com/shenchuanchao/p/19843455/csharp-reduce-code-runtime

文章宣称 C#再登顶,提供 7 个实战性能优化技巧,已展示数据结构选择、StringBuilder、Span 与异步编程示例并给出性能对比。示例直观、实践性强但技术深度为中等,创新性有限,表述清晰可读,时效性高,缺乏引用与基准细节。

.NET 官方团队发布的 .NET Agent Skills,告别 AI 编程幻觉!

https://www.cnblogs.com/Can-daydayup/p/19868047

文章介绍 .NET Agent Skills(dotnet/skills),这是微软为 AI 编码代理提供的官方技能库。该库以模块化 Markdown 封装专业知识与工作流,支持自动触发、团队共享和纳入 CI/CD。仓库包含核心 .NET、数据访问、诊断、MSBuild、NuGet、升级、MAUI、AI/ML、模板引擎、测试和 ASP.NET 等多个插件。文中给出在 Claude Code 中添加与安装插件的命令示例,并附带 GitHub 链接。该方案能显著减少 AI 的"幻觉",提升 .NET 代码质量与工程化能力。

.NET 高级开发 | C# 中的动态代码:反射、EMIT、表达式树、Roslyn、Source Generators

https://www.cnblogs.com/whuanle/p/19868938

文章介绍了 C#实现动态代码的多种方式,包括反射、表达式树、EMIT、Roslyn 和 Source Generators。作者强调需熟练掌握反射并给出学习链接。重点展示了用 EMIT 实现 AOP 的原理与示例,包含 LogAttribute 特性、被拦截的 Test 类及通过 AopInterceptor 生成接口和类代理的用法,并示例了运行输出。文章指出 EMIT 通过生成 IL 提高性能。文章还提及表达式树解析、Roslyn 与 Natasha 用于动态代码和对象映射的实现。整体偏实践示例,部分内容未深入展开。

.NET 高级开发 | 设计、实现一个事件总线框架

https://www.cnblogs.com/whuanle/p/19862890

文章介绍在 .NET 环境下实现事件总线,参考 MASA 并使用 Maomi.EventBus 包。作者说明事件模型需继承 Event 或 IEvent,并示例 MyEvent record。文章阐述事件执行器为标记了 Event 特性的类型中带 EventHandler 特性的方法,框架会扫描并以 scope 注入注册。文中强调 EventHandler.Order 用于控制执行顺序,IsCancel 用于标记撤销器以支持回滚。示例实现用户注册流程,包含验证码校验、写库、初始化与异常触发时的撤销逻辑。文末提供作者博客与教程链接。

SqlSugar 接入 PostgreSQL pgvector 完整方案(增删改查 + 强类型相似度查询)

https://www.cnblogs.com/harryPei/p/19866048

文章记录在 .NET + SqlSugar + PostgreSQL + pgvector 环境下实现向量检索的完整方案。作者说明安装 Pgvector 包并在程序启动时调用 NpgsqlConnection.GlobalTypeMapper.UseVector() 注册类型映射。指出 SqlSugar 有插入/更新和查询两条独立通路的核心难点。为插入/更新提供自定义 ISugarDataConverter 实现,把 Pgvector.Vector 封装为 SugarParameter 并显式设 DbType.Object,避免被当作字符串发送导致解析错误。强调查询表达式需用 SqlFuncExternal 翻译并按 pgvector 可识别格式传参。文章给出代码片段并总结调试经验,实用且有指导价值。

.NET 高级开发 | 定制 ASP.NET Core 框架

https://www.cnblogs.com/whuanle/p/19874936

文章介绍如何定制 ASP.NET Core Web 开发框架。作者展示创建 Maomi.Web.Core 模块并注册服务。文章定义统一响应模型 Res、Res 与分页模型 PageRes、PageListRes、PageArrayRes 并给出示例代码。文中还列出模型验证、自定义验证器、i18n、Action/资源/异常筛选器、Swagger 定制、模型属性处理、接口分组、版本号与路由后缀等定制点。文稿部分代码含 HTML 转义与小错误,内容未完全展开但覆盖关键定制方向。文章侧重实用改造与工程实践参考价值。

.NET 生态下 Native AOT 兼容的 Cron 任务调度框架

https://www.cnblogs.com/shanyou/p/19888982

文章通过 AI 调研总结了.NET Native AOT 的发展、机制与限制。Native AOT 在发布期用 ILC 把 IL 编译为目标机器码,移除了 JIT,显著降低启动时间、内存和磁盘占用。裁剪器在构建时剔除未被静态引用的代码,阻断了动态程序集加载、Reflection.Emit 和开放泛型。结果导致 Hangfire、Quartz.NET 等传统调度框架在 AOT 下失效,引发 IL3050/IL3058 警告及运行时崩溃。文章指出需重构调度框架以适配静态编译并关注与 WebAssembly 及低功耗平台的融合趋势。

告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库

https://www.cnblogs.com/Can-daydayup/p/19882682

该文章介绍 FluentAvalonia,一个基于 Fluent Design 和 WinUI 的开源 MIT 许可 Avalonia 控件库,帮助.NET 开发者构建现代跨平台 UI。文章说明 Avalonia 跨平台特性、支持平台与最低版本要求,并提供 GitHub 仓库和在线文档链接,便于快速上手。优点是界面现代、组件丰富且实用性强。缺点是缺少深度示例、性能评估和更多使用场景说明。总体适合希望提升桌面界面质量的.NET 开发者试用和贡献。

.NET 高级开发 | 手写一个对象映射框架

https://www.cnblogs.com/whuanle/p/19880904

Maomi.Mapper 是一个教学用对象映射框架。它使用表达式树生成对象成员映射代码。项目注释详尽,适合学习反射、表达式树和类型转换实现。仓库地址已给出。基准测试显示 MaomiMapper 性能明显落后于 AutoMapper,表格列出多组耗时、内存分配和代数数据。测试模型包含多种数值、布尔与字符属性。作者明确指出不适合生产环境,但代码和注释有助于研究和教学。

AutoMapper 三板斧:值转换器、条件映射、自定义解析器,复杂映射不再愁

https://www.cnblogs.com/shenchuanchao/p/19868005/automapper-value-converter-conditional-mapping-custom-resolver

文章讲述了 AutoMapper 三个高级配置技巧:值转换器、条件映射和自定义值解析器。值转换器解决类型不匹配问题并可复用,但在 EF Core 的 ProjectTo 投影时无效。条件映射通过 Condition 和 PreCondition 控制何时映射,PreCondition 在取源值前执行以节省开销,作者警告不要滥用条件。自定义值解析器适用于需要合并多个源字段或复杂逻辑的场景,示例演示了姓名拼接。内容实用清晰,示例直接可用,但缺少更深层的实现细节与引用。

for 和 foreach 到底谁快?刚子跑了 1 亿次循环,告诉你真相

https://www.cnblogs.com/shenchuanchao/p/19856390/for-vs-foreach-100-million-iterations-truth

文章用 1 亿次基准对比 C#中 for 与 foreach。结论:数组两者接近,示例 for 约 116ms,foreach 约 89ms;List 中 foreach 略优(约 178ms vs 200ms);链表和无索引集合只能用 foreach。作者解释底层原因并给出实用准则:需修改或需索引用 for,常规遍历优先 foreach,性能敏感时用 BenchmarkDotNet 复测。文章实用清晰,但缺少运行环境、测量方法和参考来源。

C#从零开始: LumNote-重新定义单机 Markdown 编辑器

https://www.cnblogs.com/luojin765/p/19866456

本文介绍 LumNote,一款由萤火初芒发布、基于 Avalonia 用 C#开发的跨平台 Markdown 编辑器。它使用自研渲染引擎(基于 Skia 而非 Web),支持深度 Git 集成、实时预览(50ms 防抖)、可选中预览、完整 GFM、MathLaTeX 和 DOCX 导出。单文件约 25MB,免费开源,面向技术写作者与开发者,强调性能、跨平台一致性与可扩展性。文章由 OpenLum 智能体生成,内容偏宣传,缺少实现细节、基准数据与引用支持。

AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布

https://www.cnblogs.com/wangzhenyao1994/p/19885603

文章介绍作者基于 Microsoft Semantic Kernel 封装的库 SemanticKerne.AiProvider.Unified。该库兼容 OpenAI、Ollama、DashScope,支持流式聊天、模型思考过程输出、MCP 插件和自定义工具。它通过配置或代码灵活设置,内建 ASP.NET Core 依赖注入,并提供基于 SSE 的实时流式输出。文中给出 appsettings.json 和 Program.cs 服务注册示例,便于本地与云端部署测试。整体实用且集成友好,但缺少更完整的示例、性能与安全说明。

MAF 快速入门(23)通过 C#类定义 Skills

https://www.cnblogs.com/edisontalk/p/-/quick-start-on-maf-chatper23

作者 Edison 跟随课程学习 MAF 并推荐入门。MAF 1.1.0 引入强类型 Skill,可用 C#类定义 Skill,提升类型安全、可测试性和分发性。类可将资源、脚本与业务规则内聚,便于代码治理和团队协作。当前 Agent Skills 仍属实验性,生产需谨慎并需显式禁用 MAAI001 告警。示例为跨境物流运营的 UnitConverterSkill,流程为读取 conversion-table 资源、调用 convert 脚本计算,并返回包含换算系数、换算过程与结果的可解释回复。示例使用 Qwen3.5-35B-A3B 模型并引用 Microsoft.Agents.AI.OpenAI 1.1.0 包。文中给出部分 C#实现但代码未完结。

SQLite 分片方案实战:三种分片策略的深度对比

https://www.cnblogs.com/newbe36524/p/19882944

文章介绍了 HagiCode 项目中三种 SQLite 分片实战方案。作者描述了单文件 SQLite 在高并发下的写锁与性能问题,并提出以分片保留轻量部署的解决思路。三种方案分别面向 Session Message、Orleans Grain 与 Hero History,采用 256、100、10 个分片,使用确定性路由、统一接口、独立文件和 WAL+busy_timeout 优化并发。文中列出具体命名规则与路由算法示例,并强调无通用解法,应按业务特性选型。源码链接在 github.com/HagiCode-org/site。

C#/.NET/.NET Core 技术前沿周刊 | 第 69 期(2026 年 4.01-4.12)

https://www.cnblogs.com/Can-daydayup/p/19858918

本周周刊聚焦 C#/.NET 生态的最新动态与实用资源。文章包含 C# 15 联合类型解读、Avalonia UI 12.0 发布、ASP.NET Core 2.3 结束支持公告、HttpClient 请求与客户端开发技巧、每月优秀项目汇总以及 CliWrap 命令行交互库评述。内容兼顾新特性演示与工程实践,引用官方博客和社区文章,便于跟进版本演进与迁移策略。对中高级.NET 开发者具有较高参考价值并能带来直接实践收益。

【Azure Developer】IIS w3wp.exe 的 -m 参数:一个未被记录的管道模式标识

https://www.cnblogs.com/lulight/p/19867451

作者为排查 Application Insights 自动检测失效,发现 w3wp.exe 启动参数 -m 决定应用池管道模式。通过在本地 IIS 创建 Classic 与 Integrated 池并抓取 w3wp 内存转储,作者看到 Classic 时 -m=1,Integrated 时 -m=0。作者列出其他实测启动参数及含义,并解释 Classic 模式因 IIS 与 ASP.NET 管线分离,导致 HTTP 模块无法拦截所有请求,从而让 Application Insights 自动检测失效。该发现具备实用价值,方法清晰但缺少官方引用。

C#事务处理最佳实践:别再让"主表存了、明细丢了"的破事发生

https://www.cnblogs.com/shenchuanchao/p/19889181/csharp-transaction-best-practice-prevent-data-loss

文章由刚子说明如何在保存"凭证规则"时用 TransactionScope 保证主表、明细与条件的一致性。描述新增(插入主表、明细、条件)和更新(查出旧数据、删除旧明细与条件、全量替换)两种场景。提供可直接复用的 Service 层代码示例,演示在 using TransactionScope 内处理事务与异常,讨论 try-catch 放置与实用最佳实践。适合需要事务一致性保障的后端开发者借鉴。

.NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块

https://www.cnblogs.com/net-kevin-li/p/19857580

文章介绍用强类型 C# 类实现 Class-based Skill 来解决工程化治理问题。作者用 AgentClassSkill 将 Frontmatter、Instructions、Resource 和 Script 聚合到同一类中。示例展示用 Attribute 标注资源、在类内写动作方法、以及享受编译期校验、重构和单元测试优势。该做法便于注入 HttpClient 和 ILogger,利于复杂业务系统长期维护。文章实践性强、面向生产,但缺少外部引用支持。

玩转控件:封装个带图片的 Label 控件

https://www.cnblogs.com/axing/p/19884352

作者为工控和 MES 场景封装了一个简化的 ImageLabel 控件以美化 WinForm 界面。文章说明了替换 RealTaiizor 的动因并展示了继承 Label 实现图片属性、尺寸、对齐、图片与文字间距和图片变更事件的部分 C#代码。示例设置了双击事件和透明背景支持。文章实用且易上手,能直接用于 WinForms 项目。代码片段不完整,缺少绘制实现、性能评估和异常处理说明,也未提供参考或测试案例。总体适合需要轻量图文控件的开发者参考与二次扩展。

在后台服务中使用 Scoped 服务,为什么总是报错?

https://www.cnblogs.com/yuxl01/p/19879438

文章聚焦 .NET 依赖注入生命周期,覆盖 Transient、Scoped、Singleton。技术深度适中,解释常见规则但未深入实现细节。实用性较高,给出示例以便理解,但示例含错误(把 Scoped 用 AddSingleton、泛型被 HTML 转义),可能误导读者。表达口语化且结构松散,条理性不足。原创性有限但时效性强,适合入门复习。可读性中等,建议修正代码示例、补充边界和异常场景以及添加引用来源以提升可靠性。文末未完整说明控制台与根容器解析 Scoped 的限制,需补充完整说明与示例。

Hermes Agent 集成实践:从协议到生产

https://www.cnblogs.com/newbe36524/p/19864835

本文介绍 HagiCode 在 Orleans 后端与 React 前端中集成 Hermes Agent 的实践。文章覆盖 ACP 协议适配、StdioAcpTransport、HermesCliProvider 实现 IAIProvider 接口、HermesPlatformConfiguration 配置与 CliAcpSessionPool 会话复用。文中还说明了分层架构、SignalR 实时同步与前端 executorTypeAdapter 的映射策略。方案具备可替换性与扩展性,适合工程落地。文章缺少性能基准、容错细节和外部参考链接,深度与引用可进一步增强。

通过 C# 读取并导出 PDF 书签

https://www.cnblogs.com/jazz-z/p/19875607

本文介绍使用 Free Spire.PDF for .NET 和 C# 读取 PDF 书签并导出到文本。先通过 NuGet 安装 FreeSpire.PDF(免费版单文件 10 页限制)。在代码中引用 Spire.Pdf 和 Spire.Pdf.Bookmarks 命名空间。加载 PdfDocument,获取 pdf.Bookmarks 集合。通过递归遍历每个 PdfBookmark 及其子项,提取 Title 和 DisplayStyle。将构建的 StringBuilder 内容写入文本文件。示例提供 GetBookmarks 和 GetChildBookmark 两个方法及完整控制台实现。

国际周报

话题

.NET 11 预览版 3 现已上线! - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-11-preview-3/

.NET 和 .NET Framework 2026 年 4 月的服务发布更新 - .NET 博客

https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-april-2026-servicing-updates/

Microsoft 代理框架 1.0 | Microsoft 代理框架

https://devblogs.microsoft.com/agent-framework/microsoft-agent-framework-version-1-0/

主题演讲:通往 Visual Studio 2027 之路:构建更快、更智能的 IDE | VS Live! 拉斯维加斯 2026

https://www.youtube.com/watch?v=fVE4Ol085UU

用 .NET 原生 AOT 编写 Node.js 插件 - .NET 博客

https://devblogs.microsoft.com/dotnet/writing-nodejs-addons-with-dotnet-native-aot/

Microsoft.AspNetCore.DataProtection 中的关键故障变更 从 10.0.5 = 10.0.6 · 第 66335 期 · Dotnet/ASPNetcore

https://github.com/dotnet/aspnetcore/issues/66335

发布

文物、幻灯片等

尝试使用 Microsoft 代理框架与本地大型语言模型 第 8 部分(ChatHistoryProvider)

https://zenn.dev/yy7613/articles/af540163a106c9

重新审视 C# 与 Westwind 编写脚本。脚本模板库,部分 1

https://weblog.west-wind.com/posts/2026/Apr/20/Revisiting-C-Scripting-with-the-WestwindScripting-Templating-Library-Part-1

C# 15:工会类型完整指南 - Qiita

https://qiita.com/hez2010/items/b656c867f9e5f57cc1cd

在体验了 Kafka 和 MassTransit 后,我意识到事件驱动系统的本质不是"传递",而是"数据处理"

https://zenn.dev/aecomet/articles/fa61ba2aa5d583

如果你想要一个测试版 S3 模拟服务器,也许现在你可以让 AI 帮你搭建它------Qiita。

https://qiita.com/yamaokunousausa/items/4547756cc171d7709596

使用开发容器尝试 C#15.0 VSCode

https://zenn.dev/inuinu/articles/csharp15-with-dev-container

利用你的技能,用 GitHub Copilot CLI 编写优秀程序

https://zenn.dev/microsoft/articles/github-copilot-create-agents

尝试在 USB LCD 上显示 Claude Code 的速率限制,并用 PATLITE(假)通知了权限提示 - Qiita

https://qiita.com/yamaokunousausa/items/8ee2d8dc607483ce7679

将 SwiftUI 应用移植到 Avalonia:跨平台.NET 的表现如何

https://dev.to/biozal/porting-a-swiftui-app-to-avalonia-how-does-cross-platform-net-hold-up-4ol0

任何 CPU - :InstallUtil.exe 卡在 x64 迁移中都必须运行在同一架构上

https://zenn.dev/luxiar/articles/1a5fa7127b0d18

通往 Visual Studio 2027 之路 - NDepend 博客

https://blog.ndepend.com/the-road-to-visual-studio-2027/

C# WinForms 介绍 即使是非工程师也能做到------自己打造制造用的内部工具

https://zenn.dev/jodycraft/articles/csharp-winforms-for-non-engineers

.NET 边界检查的模式收集消失

https://zenn.dev/prozolic/articles/79df5e08acf4b5

.NET MAUI 你的第一个应用开发! 让我们创建一个 BMI 计算应用------Qiita。

https://qiita.com/Satoshi_Katsu/items/2748e8d423138b95d829

从零开始用 C#构建 GPT | 加里·杰克逊

https://garyjackson.dev/gpt-course/

介绍 | 加里·杰克逊

https://garyjackson.dev/gpt-course/introduction/

C# 看起来像是 Go:构建一个没有 .csproj 的 Web API

https://makarchie.com/posts/csharp-that-looks-like-go-file-based-apps/

支持 Aspire 通过 GitHub Copilot Cloud Agent 启动

https://zenn.dev/mayuki/articles/a8a9f64100e46d

应用无法启动,但没有日志显示...... 解决"Bootstrap Logger"问题的建议 - Qiita

https://qiita.com/futayubi5656/items/dcbe02d506f02855fd8b

如何在 DTO 属性中放置 IAsyncEnumerable 时,如何修复并行执行错误

https://zenn.dev/juners/articles/288efc07eb5794

C# PDF 生成库比较 --- 在检查报告中考虑实现 PDFSharp 与 QuestPDF 的选择

https://zenn.dev/jodycraft/articles/csharp-pdf-pdfsharp-vs-questpdf

尝试 Microsoft Foundry Local(C# 第一部分)- Qiita

https://qiita.com/kashin777/items/0878a6f2c1412402d065

LINQ 以避免每次数据类型成员数量增加时都进行更改。

https://zenn.dev/numani/articles/extract-shape

利用 EFCore 与 TestContainers 和 Podman 实现 .NET 应用的集成测试

https://zenn.dev/ryun_log/articles/8a9bfd0740d0e5

Azure Microsoft Entra ID 用户管理与 Blazor 权限控制实现指南 - Qiita

https://qiita.com/KM_20005/items/0caaff534860d026d8b2

从 64 位应用(COM 代理)呼叫 32 位 DLL 的请求

https://zenn.dev/nmiura_thakaz/articles/d93479bbbbc3fa

在 WPF 中使用 Foundry 本地 SDK

https://zenn.dev/yakumo3/articles/5a545be2a4cb27

C# 工程师 - Qiita 在 TypeScript 中封存的概念与写作方法总结

https://qiita.com/HakamataSoft/items/da0252c10a4128b1f4a0

停止寻找漏洞:认识全新的 Visual Studio 调试代理工作流程------Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/stop-hunting-bugs-meet-the-new-visual-studio-debugger-agent/

Azure MCP 工具现已内置于 Visual Studio 2022 --- 无需扩展 - Visual Studio 博客

https://devblogs.microsoft.com/visualstudio/azure-mcp-tools-now-ship-built-into-visual-studio-2022-no-extension-required/

介绍 dotLLM------用 C#构建 LLM 推理引擎 | 康拉德"Dev 书呆子"科科萨

https://kokosa.dev/blog/2026/dotllm/

.NET 中的 URL 模式匹配 - Gérald Barré

https://www.meziantou.net/url-pattern-matching-in-dotnet.htm

在 .NET 中开始使用 pgVector 进行简单向量搜索

https://www.milanjovanovic.tech/blog/getting-started-with-pgvector-in-dotnet-for-simple-vector-search

为什么我要用 C#构建数据库引擎

https://nockawa.github.io/blog/why-building-database-engine-in-csharp/

从今天开始使用 Godot 引擎工作

https://docs.google.com/presentation/d/1PuMcHiRoEUBiS7-DYWD882BNLVRE-07fPWBixBMif1U/edit

库、仓库、工具等

KoMMet/WizGrep

https://github.com/KoMMet/WizGrep

akeit0/okojo:Okojo 是一个实验性的低分配管理 JavaScript 引擎,适用于 .NET

https://github.com/akeit0/okojo?tab=readme-ov-file

今日人物

爱德华·阿尔伯特·费根鲍姆 (英语:Edward Albert Feigenbaum,1936 年 1 月 20 日---),生于美国新泽西州,计算机科学家,专长于人工智能,经常被人称为专家系统之父。为 1994 年图灵奖得主。

C# .NET 交流群

相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET 性能优化经验的群组,主题包括但不限于:

希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET 问题和宝贵的分析优化经验。目前一群已满,现在开放二群。 可以加我 vx,我拉你进群: ls1075 另外也创建了 QQ Group: 687779078,欢迎大家加入。

相关推荐
InCerry3 天前
C# .NET 周刊|2026年4月2期
.net周报·.net周刊
InCerry1 个月前
.NET性能优化:提升Apache Arrow读写性能
c#·.net周刊
InCerry2 个月前
C# .NET 周刊|2026年4月1期
.net周报·.net周刊
InCerry2 个月前
C# .NET 周刊|2026年3月5期
.net周报·.net周刊
InCerry2 个月前
C# .NET 周刊|2026年3月4期
.net周报·.net周刊
InCerry2 个月前
C# .NET 周刊|2026年3月3期
.net周报·.net周刊
InCerry2 个月前
C# .NET 周刊|2026年3月2期
.net周报·.net周刊
InCerry3 个月前
C# .NET 周刊|2026年3月1期
.net周报·.net周刊
InCerry3 个月前
C# .NET 周刊|2026年2月4期
c#·.net周报·.net周刊