刷新
AScript之事件处理脚本

AScript是一个开源的C#动态脚本解析执行引擎,脚本中支持定义事件处理。 一、Lambda委托 1 var s = @" 2 var p = new Person('tom', 20); 3 p.Saying += (ss,ee)=>{ 4 (ss as Person).Age+=1; 5 } ...

记一次 .NET 某注塑模具系统 CPU爆高分析

博主头像 一:背景 1. 讲故事 前些天有位朋友在微信上找到我,说他们的系统出现了CPU爆高,找不到原因,让我帮忙看一下,dump也拿出来了,接下来上windbg分析。 二:CPU爆高分析 1. 真的爆高吗 dump的分析第一原则就是相信数据,先使用 !tp 观察cpu使用率。 0:031> !tp Usin ...

MonkeyCode写消息队列:从零实现高可用异步架构

博主头像 同步调用是微服务耦合的根源。消息队列解耦了服务,也救了你的响应时间。用MonkeyCode,从选型到实现一把梭。 为什么需要消息队列? 一个典型的电商下单流程,同步调用长这样: # 同步调用:创建订单要等所有下游返回 @app.post("/orders") async def create_ord ...

[翻译] 为什么我要用 C# 构建数据库引擎

博主头像 当我告诉别人我正在用 C# 构建一个 **ACID 数据库引擎**时,第一反应总是如出一辙:“那 GC(垃圾回收)停顿怎么办?” 这是一个合情合理的问题。几乎没有人会在 .NET 中构建高性能数据库引擎。人们普遍认为,这类软件必须使用 C、C++ 或 Rust 编写——托管语言基本上被排除在“微秒... ...

无需 Office,用 C# 轻松增删 PowerPoint 幻灯片

博主头像 在批量生成报告、动态拼接演示文稿或自动化处理 PPT 模板时,通过代码动态增删幻灯片几乎是绕不开的需求。本文将以免费库 Free Spire.Presentation for .NET 为例,提供一个可直接落地的技术方案。 技术方案定位:无 Microsoft Office 依赖,纯托管代码实现,可 ...

记一次 .NET 某集群管理软件 内存暴涨分析

博主头像 一:背景 1. 讲故事 前些天有位朋友微信找到我,说它的程序出现了内存暴涨,自己也没分析出啥,让我看下到底怎么回事,然后让这位朋友抓一个dump,拿它占一卦就行了。 二:内存暴涨分析 1. 为什么会暴涨 到底是哪里的暴涨,折半查找一下就知道了,分别通过 !address -summary 和 !ee ...

C# 实现 Word 文档文本批量替换 (动态填充)

博主头像 在各类企业级应用中,程序化修改 Word 文档是一个高频需求——批量更新合同模板中的占位符、动态生成个性化的报告与报价单、统一标准化文档中的术语表述等。实现这类需求的核心技术挑战在于:Word 文档采用复杂的内置结构存储文本与格式,简单的字符串操作极易破坏文档的格式完整性,导致输出结果无法满足正式应 ...

数据去重:通过 C# 删除 Excel 中的重复行

博主头像 在日常数据处理中,Excel 表格中的重复行是一个常见问题。无论是数据清洗、报表生成还是数据分析,去除重复记录都是一项基础且关键的操作。本文将详细介绍如何使用 Free Spire.XLS for .NET(一款免费、无需安装 Microsoft Office 的 Excel 操作组件),通过 C# ...

C# 基础入门指南:从零开始学习 C# 编程

博主头像 一、什么是 C#? C#(读作 "C Sharp")是微软开发的一种面向对象、类型安全的编程语言,运行在 .NET 框架之上。它结合了 C/C++ 的强大功能和 Java 的简洁性,广泛应用于: 桌面应用开发(WinForms、WPF) Web 应用开发(ASP.NET) 游戏开发(Unity 引擎 ...

在 Avalonia 中编写高性能动画

博主头像 在 Avalonia 框架中,我们通常使用 XAML 编写动画。然而,实际上 Avalonia 中还存在另一套鲜为人知(?)的动画系统——Composition Animation(合成动画) 本文将介绍如何在 Avalonia 中编写合成动画,以及它相比普通 XAML 动画的优点 ...

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

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

[C# 开发] FolderIconFix

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

使用 C# 提取 Word 文档中的表格数据

博主头像 在日常办公或系统开发中,Word 文档里的表格数据常常需要被提取出来,用于数据导入、统计分析或报表生成。然而,手动复制粘贴效率低下,而借助 Office COM 组件又容易遇到版本兼容、部署繁琐等问题。本文将展示如何使用 C# 搭配 Free Spire.Doc 库,无需安装 Microsoft W ...

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

博主头像 前言 Union 类型(联合类型)一直是 C# 社区呼声最高的特性之一。从最初的 discriminated unions 提案到今天,这个特性经历了多年的设计和讨论,终于在 C# 15 中正式落地。 Union 类型允许我们将一个值限定为一组封闭类型中的某一种,并且在针对 Union 值的 swi ...

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

博主头像 PDF 书签(大纲)是文档导航的核心要素,尤其对于长文档或技术手册,提取书签信息可用于生成目录、索引或进行文档结构分析。本文将介绍如何使用 Free Spire.PDF for .NET 库,通过 C# 代码完整读取 PDF 文件中的所有书签(包括多级嵌套书签),并将标题、显示样式等信息导出到文本文 ...

123···8>