Tag: CSharp
All the articles with the tag "CSharp".
-
.NET 10 反射性能:先缓存,再编译,再测量
Published: at 12:09 AMDev Leader 这篇文章把 .NET 10 里的反射性能拆开讲清楚:慢的通常是成员查找和 late-bound invocation,优化顺序是缓存 PropertyInfo、使用 FrozenDictionary、编译 delegate、必要时使用 UnsafeAccessor,并用 BenchmarkDotNet 验证。
-
C# 16 的 unsafe 要变成可审查的安全契约
Published: at 11:57 PMMicrosoft 正在改进 C# 的内存安全模型,计划让 unsafe 从指针语法标记扩展成可传播、可记录、可审查的调用方契约。新模型预计在 .NET 11 预览,在 .NET 12 进入生产发布。
-
C# 封闭层次结构提案:用 closed 修饰符终结 switch 默认分支
Published: at 05:22 AMC# 语言设计团队正在提案一个新的 closed 修饰符,允许将类声明为封闭层次结构,把继承限制在同一程序集内。一旦穷举了所有派生类,switch 表达式就不再需要 default 分支,同时编译器也能更精准地检查类型转换的有效性。
-
别再用 DateTime.Now:用 TimeProvider 让 .NET 代码可测试
Published: at 09:13 AM几乎每个 .NET 项目都有同一个隐患:DateTime.Now 散落在服务、验证器和业务规则里。表面无害,实际上让时间相关逻辑无法正确测试。本文介绍两种解决方案——自定义 IDateTimeProvider 接口和 .NET 8 内置的 TimeProvider——让时间成为可注入的依赖,配合 FakeTimeProvider 轻松测试订阅到期、试用结束等真实场景。
-
.NET 项目必加的 5 类架构测试
Published: at 09:03 AM架构规则写在文档里,六个月后就会被违反。本文介绍用 ArchUnitNET 把层依赖、命名规范、类共位、可见性和第三方库边界这 5 类约定写成自动化测试,让 CI 来守护你的架构意图,而不是靠 Code Review 碰运气。
-
用 Redis Backplane 横向扩展 SignalR:消息路由、粘性会话与故障边界
Published: at 08:36 AMSignalR 横向扩展后,每个实例只知道自己的连接,消息很容易发不到目标客户端。本文用 Redis backplane 串起多实例消息路由,并讲清楚 sticky sessions、ChannelPrefix、Redis 故障丢消息和 Azure SignalR Service 的取舍。
-
C# LINQ 连接完全指南:Join、GroupJoin、LeftJoin、RightJoin 与 Zip
Published: at 12:59 AM全面讲解 C# LINQ 的各类连接操作——从 Join 内连接、GroupJoin 分组连接,到 .NET 10 新增的 LeftJoin 与 RightJoin,再到 Zip 位置配对。每种操作对应 SQL 场景,含完整代码示例。
-
Microsoft Agent Framework 持久化工作流详解:从控制台到 Azure Functions
Published: at 03:00 AMMicrosoft Agent Framework(MAF)提供了一套完整的工作流编程模型,支持顺序执行、并行扇出/扇入、人工审批、条件路由和子工作流。本文带你从零搭建一个简单的内存工作流,逐步添加持久化、并行 AI 智能体,再到 Azure Functions 云托管和 MCP 工具暴露。