Tag: CSharp
All the articles with the tag "CSharp".
-
别再用 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 工具暴露。
-
C# LINQ 完整指南:从基础操作到 .NET 6-10 新增 API
Published: at 02:40 AM本文系统梳理 C# LINQ 全部核心操作符——过滤、投影、排序、分组、联接、集合运算、聚合与元素访问,并对 .NET 6-10 新增 API(DistinctBy、MinBy、Chunk、CountBy、AggregateBy、Index、LeftJoin 等)逐一对比说明,附生产级代码示例。
-
C# Regex.Replace 与 Regex.Split 全解析:MatchEvaluator、EnumerateSplits 与替换语法
Published: at 02:20 AMRegex.Replace 和 Regex.Split 是 C# 文本转换的主力 API。本文从基础用法讲到 MatchEvaluator 动态替换、替换字符串语法、GeneratedRegex 性能优化,再到 .NET 8 新增的零分配 EnumerateSplits,并附多个生产级实用示例。
-
C# 正则表达式:用好 Lookahead、Lookbehind 和高级模式语法
Published: at 04:06 AM零宽断言是正则表达式进阶的核心。本文系统讲解 C# 中的正向/负向 Lookahead、正向/负向 Lookbehind、反向引用、条件模式、原子组等高级语法,结合实用代码示例,帮助你写出更精准、更简洁的正则模式。
-
C# 中 Enum 与常量怎么选:一份实用决策指南
Published: at 11:08 AMenum 和常量都能用命名值替换魔法数字,但两者有本质区别。本文梳理各自的适用场景、决策矩阵,以及更灵活的第三个选项——枚举类,帮助你在领域建模、配置和 API 设计中做出正确选择。