C#/.NET ref struct 深度解析:语义、限制与最佳实践

`ref struct` 是 C# 7.2 引入的一类受限值类型,核心目标是把对象生命周期锁定在栈作用域内,从而减少 GC 干扰并保证内存访问安全。理解它的限制来源,比死记“哪些地方不能用”更重要。 很多开发者第一次接触 `ref struct`,往往先记住一串“不能做什么”的规则:不能装箱、不能实现接口、不能进 `async`、不能放进类字段。

C#/.NET ref struct 深度解析:语义、限制与最佳实践

使用 C# 高效解析 PDF 文档:文本与表格提取实战指南

本文以 Spire.PDF for .NET 为例,梳理 C# 解析 PDF 的实用路径:先完成 NuGet 安装与文档加载,再分别处理整页文本、指定区域文本和表格提取,最后补上性能、异常处理与资源释放要点,便于直接落地到批处理或业务系统。

使用 C# 高效解析 PDF 文档:文本与表格提取实战指南

如何修复 Cookie 参数中的 SQL 注入漏洞

Cookie 里的值一旦未经校验就直接拼进 SQL,风险和表单注入没有区别,而且更容易被忽视。本文按 PHP、ASP/ASP.NET 和测试排查三条线梳理修复方法,说明哪些做法可靠、哪些“过滤”其实挡不住攻击。 Cookie 注入和表单注入本质上是同一类问题,但它更容易藏在登录态、中间件和日志链路里,被开发在排查时漏掉。

如何修复 Cookie 参数中的 SQL 注入漏洞

C# 正则表达式:量词与锚点,从“.*”到精确匹配

这篇文章用 C# 的常见示例,把正则表达式里最容易混淆的量词、贪婪与懒惰、锚点、单词边界以及 `Multiline`/`Singleline` 选项串起来讲清楚。重点不是死记符号,而是判断它们分别控制“重复次数”“匹配范围”和“位置边界”。

C# 正则表达式:量词与锚点,从“.*”到精确匹配

深入理解 C#.NET record:不可变对象与值语义的现代实践

`record` 是 C# 9 引入的现代数据模型写法,核心在于不可变设计、值相等语义,以及围绕 `with`、解构、模式匹配展开的一整套用法。本文从语法、行为差异到适用边界梳理 `record`、`record struct` 与 `class`/`struct` 的取舍。 很多 C# 项目已经开始把 `record` 当作 DTO、配置对象甚至领域模型的默认选项,但它和传统 `class` 的区别并不只是写法更短。

深入理解 C#.NET record:不可变对象与值语义的现代实践

C# 正则表达式入门:Regex 基础语法与 5 个常用 API 详解

这篇文章围绕 C# `Regex` 的入门语法与 5 个高频 API 展开,重点说明 `IsMatch`、`Match`、`Matches`、`Replace`、`Split` 的适用场景,以及锚点、转义、预定义字符类等基础规则,适合拿来快速建立正则使用框架。 在 C# 里学正则,很多人一开始记住了几个写法,却分不清 API 的职责边界,结果不是校验写得太松,就是替换和提取混在一起。

C# 正则表达式入门:Regex 基础语法与 5 个常用 API 详解

C#/.NET AsyncLock 完全解析:async/await 下的并发控制方案

AsyncLock 是 .NET 异步代码里常见的互斥方案,核心价值是用非阻塞方式保护共享资源。本文从传统 lock 为什么不适合 async/await 讲起,再拆解基于 SemaphoreSlim(1, 1) 的实现思路、常见用法、与 SemaphoreSlim 的区别,以及超时和取消等扩展场景。

C#/.NET AsyncLock 完全解析:async/await 下的并发控制方案

C# 正则表达式:分支与回溯引用讲清楚

这篇文章聚焦 C# 正则里的两个高频能力:分支与回溯引用。前者解决“多个候选怎么写”,后者解决“后面必须和前面一致怎么写”,并结合分组、匹配顺序、成对引号和重复单词几个例子说明实际用法。

C# 正则表达式:分支与回溯引用讲清楚

C# 结合 GDAL 把 .tif 高程图转换为 .obj 地形模型

这篇文章用 C# 配合 GDAL 读取 .tif 高程数据,再把像素高度组织成顶点与三角面,最终导出 .obj 地形模型。重点不在 OpenGL 渲染,而在高程图读取、缺失值处理、封闭网格构建和 OBJ 写出这几步。 把 .tif 高程图转成 .obj ,看起来像格式转换,实际关键在于如何把像素里的高度值正确还原成三维网格。

C# 结合 GDAL 把 .tif 高程图转换为 .obj 地形模型

通过 C# 拆分 Excel 工作表

这篇文章用 C# 配合 Free Spire.XLS 演示如何把一个包含多个工作表的 Excel 自动拆分成多个独立文件,并补充了条件拆分、批量处理、资源释放和选型建议,适合需要做报表分发或数据整理的 .NET 开发者参考。

通过 C# 拆分 Excel 工作表