刷新
C# 实现 PDF 页面拆分:单页、指定页精准拆分

博主头像 在处理 PDF 文档时,“拆分页面”可以说是最常遇到的需求之一。比如:一份几十页的报告,你只想要其中某一章;或者开会发的 PDF 会议纪要,需要按参会者姓名拆成单页分别发邮件;又或者你刚把一份扫描件导出来,希望每一页变成一个独立的 PDF 文件……这些场景我都遇到过。 今天我就用 Free Spir ...

.NET 规范异常捕获 & 处理

博主头像 一、核心规则 异常仅用于非预期错误,禁止用来做业务逻辑判断(替代 if/TryXXX)。 精准捕获:抓具体异常,禁止无脑捕获 Exception。 禁止空捕获 catch{}、吞异常、隐藏故障。 重抛异常只用裸 throw;,禁用 throw ex;(丢失堆栈)。 资源释放优先 using,少手写 ...

.NET 代码规范、CodeReview、 重构

博主头像 一、.NET 官方 + 企业通用代码规范 1. 命名规范(最核心) 遵循 PascalCase / camelCase 严格区分,禁止拼音、无意义命名。 表格 类型规范示例 类、接口、方法、属性 PascalCase UserService、GetUserById() 私有字段 _camelCase ...

[C# 开发] FolderIconFix

做了个小工具, 这个是用于将文件夹的图标路径设置为相对路径, 方便转移文件. 效果: 绝对路径转相对路径核心代码 (纯业余水平, 见丑了): string[] tmp2; //吧路径切成腻子, 图标路径 string[] tmp3; //吧路径切成腻子, 当前文件夹路径 string[] tmp4; ...

SQL 优化、索引、执行计划、慢查询

博主头像 一、SQL 为什么会慢? 根本原因 3 个: 没走索引 / 索引失效(全表扫描) 数据量太大(没分页、没过滤) 写法复杂(子查询嵌套、join 太多、排序分组无索引) 二、索引(SQL 优化的核心) 1. 什么是索引? 可以理解为书的目录: 没有索引 = 一页一页翻(全表扫描) 有索引 = 直接查目 ...

.NET SOLID、高内聚低耦合、分层

博主头像 一、SOLID 原则(类与方法的设计规范) SOLID 是 5 个面向对象设计原则的缩写,目的:让代码易维护、易扩展、少出 bug。 1. S – 单一职责原则 (Single Responsibility) 一个类 / 方法只做一件事,且只做好一件事 坏:一个类同时处理「用户注册 + 发送邮件 + ...

C# async/await、Task 、死锁

博主头像 一、核心 Task:代表一个尚未完成的操作(可以是异步、也可以是同步) async/await:语法糖,让异步代码写得像同步 本质:await 时挂起方法,释放线程;操作完成后恢复执行 二、Task 到底是什么? 1. Task 不是线程 很多人误区: “启动一个 Task 就开一个线程。” 错。 ...

C# 委托、事件、Lambda、LINQ

博主头像 一、委托(Delegate):C# 的「函数指针」,方法的容器 1. 核心定义 委托是存储方法引用的类型,可以把方法当作参数传递、赋值、调用,实现解耦 + 回调。 2. 基础语法 // 1. 定义委托(匹配方法的返回值+参数) public delegate int CalcDelegate(int ...

踩坑记录:UTF-8、UTF-8-BOM 与 GB2312 读取的乱码真相

博主头像 在日常开发中,编码乱码是一个高频且容易让人困惑的问题,尤其是涉及 UTF-8、UTF-8-BOM 与 GB2312 这几种编码格式时,很容易出现“看似不合理”的现象。最近我就遇到了一个典型场景:脚本文件最初用 UTF-8 编码,程序中指定 GB2312 读取时显示乱码;但将脚本改为 UTF-8-BO ...

123···50>