- 博客(58)
- 资源 (5)
- 收藏
- 关注
原创 C# 12 全新特性详解:从 Primary Constructor 到 Collection Expressions
本文详细介绍了 C#12 的核心概念和实战应用:1.- 提供了基础的编程模式2.- 实现了高效的数据处理3.using 变量声明- 解决了实际业务问题4.内联数组- 提供了进阶的优化方案掌握这些技术将帮助你编写更简洁、更高效的 C# 代码,构建更健壮的应用程序。---推荐阅读[微软官方文档 - C#12](https://docs.microsoft.com/zh-cn/dotnet/)
2026-04-15 09:01:11
146
原创 C# 事件溯源与 CQRS 架构:用 EventStoreDB 打造可靠系统
本文详细介绍了 CQRS 的核心概念和实战应用:1.CQRS 读写分离- 提供了基础的编程模式2.事件溯源- 实现了高效的数据处理3.- 解决了实际业务问题4.投影重建- 提供了进阶的优化方案掌握这些技术将帮助你编写更简洁、更高效的 C# 代码,构建更健壮的应用程序。---推荐阅读[微软官方文档 - CQRS](https://docs.microsoft.com/zh-cn/dotnet/)
2026-04-14 10:47:39
183
原创 C# 内存管理深度剖析:从 Span<T> 到 Memory<T> 再到 ArrayPool
本文详细介绍了 Span 的核心概念和实战应用:1.Span 切片- 提供了基础的编程模式2.Memory- 实现了高效的数据处理3.ArrayPool- 解决了实际业务问题4.GC 调优- 提供了进阶的优化方案掌握这些技术将帮助你编写更简洁、更高效的 C# 代码,构建更健壮的应用程序。---推荐阅读[微软官方文档 - Span](https://docs.microsoft.com/zh-cn/dotnet/)
2026-04-13 19:19:34
174
原创 C# 异步编程深度剖析:从 async/await 到 ValueTask
本文详细介绍了 async 的核心概念和实战应用:1.async/await 原理- 提供了基础的编程模式2.- 实现了高效的数据处理3.- 解决了实际业务问题4.取消令牌- 提供了进阶的优化方案掌握这些技术将帮助你编写更简洁、更高效的 C# 代码,构建更健壮的应用程序。---推荐阅读[微软官方文档 - async](https://docs.microsoft.com/zh-cn/dotnet/)
2026-04-13 19:13:53
247
原创 .NET 8 Minimal API 进阶:从 CRUD 到 OpenAPI 深度定制
本文详细介绍了 Minimal API 的核心概念和实战应用:1.路由与终结点- 提供了基础的编程模式2.请求验证- 实现了高效的数据处理3.OpenAPI 文档- 解决了实际业务问题4.认证授权- 提供了进阶的优化方案编写更简洁、更高效的 C# 代码更好地处理异步和并发场景构建更健壮的应用程序---推荐阅读[微软官方文档 - Minimal API](https://docs.microsoft.com/zh-cn/dotnet/csharp/)
2026-04-13 18:52:09
244
原创 C#/.NET 8 Span与Memory高性能编程完全指南
场景 | 推荐选择 | 原因 || 同步方法内处理 |Span| 零分配,性能最优 || 跨异步边界传递 |Memory| 支持异步操作 || 处理只读数据 || 更严格的契约 || API暴露 |参数 | 避免不必要的分配 |
2026-04-13 17:53:58
392
原创 .NET 8 C# 委托与事件实战教程
摘要 本文深入讲解C#中的委托(Delegate)与事件(Event)机制。委托作为类型安全的函数指针,支持多播调用;事件则是基于委托的封装,用于实现发布/订阅模式。文章通过温度监控和文件下载两个实战案例,展示了如何声明标准事件模式并处理事件参数。同时对比了委托与事件的关键区别:事件提供了更好的封装性,防止外部直接调用或覆盖。最后指出事件订阅可能导致内存泄漏,需要特别注意。在.NET 8开发中,合理使用委托和事件能有效实现模块解耦和观察者模式。
2026-04-11 14:04:35
452
原创 C#中LINQ技术:自然语言集成与统一数据操作的艺术
解决了多数据源操作碎片化问题,其设计远超Java Stream的“函数式集合操作”和Python推导式的“语法糖”层面。尤其在复杂查询、动态过滤、对象映射场景中,展现了C#“以开发者体验为核心”的语言哲学。:创建查询范围内的临时变量,复用计算结果。分组,使查询逻辑直观如英语句子。将表达式树转换为特定数据源的查询语言(如SQL),避免内存加载全表。将匹配集合作为属性附加到外层元素。根据键匹配内层序列(如学生),生成新匿名类型承载变量。遍历外层序列(如部门)
2025-06-09 16:18:44
761
原创 C#模式匹配深度解析与最佳实践
C#模式匹配是一种类型驱动的条件判定机制,通过检查对象是否满足特定模式来执行分支逻辑。相较于传统条件判断,具有代码简洁、类型安全和声明式表达的优势。文章详细解析了C#各版本演进中的关键语法特性,如类型模式、属性模式、位置模式和Switch表达式,并深入探讨了逻辑组合、列表切片等进阶特性。同时指出性能优化与误用场景,强调应遵循null安全、分支完备性等最佳实践。C#模式匹配正从条件检查工具向领域逻辑表达语言跃迁,未来将继续强化表达能力与静态验证能力。
2025-06-09 15:32:32
854
原创 Harmony核心:动态方法修补与.NET游戏Mod开发
Harmony是一个专为.NET/Mono设计的动态方法修补库,支持非破坏性修改游戏或应用程序代码。其核心特性包括:在方法执行前后插入逻辑(Prefix/Postfix)、IL指令级修改(Transpiler)、多补丁协同执行以及纯内存操作(避免磁盘修改)。相较于传统Hook,Harmony保留原始方法完整性,支持更细粒度的干预。适用于Unity等环境,需注意内联方法、泛型等限制场景。实践建议优先使用子类化替代,过度修补可能引发模组冲突。典型应用包括游戏Mod开发中的逻辑覆写、异常处理等。
2025-06-07 08:47:28
2651
原创 WPF八大法则:告别模态窗口卡顿
针对阻塞式模态窗口(ShowDialog())导致的UI线程冻结、资源泄漏等问题,提出八大改造法则:1) 通过WeakEventManager或显式解绑防御内存泄漏;2) 使用Dispatcher确保UI线程安全;3) 结合CancellationToken实现超时控制;4) 建立事件与状态同步机制;5) 利用Partial类协同XAML与逻辑代码;6) 转向异步事件驱动模型提升响应性;7) 综合运用工具检测内存泄漏;8) 遵循XAML-C#分离设计原则。改造后方案性能提升37%以上,有效解决卡顿与
2025-06-07 08:38:39
1123
原创 揭秘委托:C#动态调用的核心奥秘
委托(Delegate)是C#中类型安全的函数指针,核心能力包括方法引用传递、多播调用(组合多个方法)和动态逻辑切换。其实质用途体现在:(1) 解耦代码(如游戏事件系统),通过委托链让各模块独立注册响应逻辑;(2) 事件驱动编程(如UI按钮点击),实现交互与控件的解耦;(3) 回调机制(异步操作通知)和泛型委托(Action/Func)简化签名管理;(4) 动态行为配置(如运行时算法切换或插件系统)。委托优于传统回调函数,支持多播和编译时类型检查,广泛应用于游戏、Web和企业级开发中。最佳实践包括空
2025-06-05 13:57:15
1291
原创 C#异步编程:从线程到Task的进化之路
本文系统解析了异步编程的演进与技术实现。同步编程模型因阻塞执行、资源浪费等问题催生了异步编程,其中async/await通过状态机机制显著提升了代码可读性。深入探讨了C#中Task与Thread的差异、硬件层面的线程实现原理,以及.NET中异步的底层机制(包括JIT编译和异常处理)。异步编程优化了I/O密集型应用性能,但需权衡约80字节的编译开销。技术演进体现了从同步阻塞到高效并发的编程范式转变。
2025-06-05 13:43:56
1051
原创 技术文档的降维打击:3大原则+5步结构+CSDN流量密码
当凌晨3点的告警短信响起,你发现团队新人因文档歧义误删了生产库——这不是段子,而是技术文档缺失带来的真实代价。本文将用实战经验,拆解如何打造‘说人话、零误差、高转化’的技术文档。
2025-06-04 19:06:29
460
原创 嵌入式分析利器:DuckDB与SqlSugar实战
DuckDB是一款嵌入式OLAP数据库,具有列式存储、轻量级部署(单文件约8MB)和兼容多种数据格式的特点,适用于本地数据分析场景。通过SqlSugar集成步骤包括:安装NuGet包、初始化连接、CodeFirst创建表结构(支持实体类映射)以及实现CRUD操作。常见问题涉及DLL加载失败和表结构同步异常,可通过工具修复或手动验证解决。最佳实践建议选择合适场景、启用列式压缩优化性能,并利用MotherDuck扩展云端能力。
2025-06-04 18:39:23
1246
原创 C#编程过程中变量用中文有啥影响?
C#技术允许中文变量名,但违背行业规范。中文命名适合本地化业务和教育场景,提升可读性;但在国际协作、开源项目中不建议使用,会带来维护和兼容性问题。折中方案包括使用英文变量加中文注释,或通过属性映射显示中文。结论是中文变量名虽可行,但应谨慎评估团队协作和长期维护成本,英文命名仍是首选。核心权衡点在于可读性与规范性的平衡。
2025-06-04 18:15:25
856
原创 MySQL数据库备份与恢复:策略与实践指南
MySQL备份与恢复不仅是技术操作,更是数据风险管理的重要环节。通过合理选择备份类型、工具及策略,结合自动化与定期验证,可最大限度降低数据丢失风险。无论是中小企业的核心业务库,还是互联网公司的高并发系统,稳健的备份方案都是抵御灾难的“最后一道防线”。
2025-02-20 08:48:20
1005
原创 分布式数据库:架构演进、核心挑战与行业落地实践
分布式数据库正从"可用"向"好用"阶段跨越。根据Gartner预测,到2026年75%的全球企业将把分布式数据库作为核心系统首选。建议企业在选型时重点关注云原生兼容性与生态开放度,避免被单一厂商绑定。
2025-02-20 08:32:54
1212
原创 掌握高级SQL技巧:从优化到复杂查询的实战指南
在数据驱动的业务场景中,高效的SQL编写能力直接影响数据库性能和数据分析效率。本文将从和三个维度,详解8个核心技巧,帮助开发者提升SQL实战能力。
2025-02-20 08:09:35
612
原创 计算机基础知识测试题
单选题〕在下载的普涌程序中隐含了一些非法功能的代码,用于窃取户私密信息或执行其他恶意程序,这种恶意软件的攻击方式称为。DCPU不能直接访问存储在内存中的数据,也不能直接访问存储任外存中的数据。ACPIJ能直接访问存储在内存中的数据,也純直接访问存储在外存中的数据。BCPU不能直接访问存储在内存中的数据》能直接访问存储在外存中的数据。BCPU不能直接访问存储在内存中的数据,能直接访问存储旺外存中的数据。ACPU能直接访问存在内存中的数据,也能直接访问存储在外存中的数据。
2023-11-27 08:24:15
1170
原创 计算机基础单元测试
单选题〕程序员在设计的软件系统中插入了一段专门设计的代码,使得他在任何时候都可以绕开正常的登录认证过程,讲入该软件系统,这种恶意软件的攻击方式称为。〔单选题〕从第一代计算机到第四代计算机的体系结构是相通的,都是中运算器、控制器、存储器及输入输出设备组成的。【单选题】在下载的普通程序中隐含了一些非法功能的代码,用于窃取用户私密信息或执行其他恶意程序,这种恶意软件的攻击方式称为。〖甲选题〕计算机系统采总线结构对存储器和外设进行协调。ACPU能直接访问存储在内存中的数据,也能直接访问存储在外存中的数据。
2023-11-25 14:55:47
1107
原创 C# Label内字体随着字数的增加而自动减小,Label大小不变
FontStyle fontStyle 字体的粗细。float size 字体的大小。
2023-11-16 11:59:01
662
原创 C#中连接并操作SQL数据库
在这个例子中,我们将创建一个新的博客文章。首先,我们需要创建一个SqlCommand对象来表示这个命令。然后,我们调用SqlCommand的ExecuteNonQuery方法来执行这个命令。这个方法返回一个整数,表示受这个命令影响的行数。因为我们正在插入一个新的行,所以这个数字应该是1。这个库是ADO.NET的一部分,用于SQL Server的交互。它包括数据库服务器的位置,数据库的名称,以及用来验证身份的用户名和密码。然后,我们需要创建一个SqlConnection对象来表示到数据库的连接。
2023-11-14 16:19:35
892
原创 C#连接斑马打印机
通常,这涉及到创建一个打印机对象,并使用该对象的连接属性来指定如何连接到打印机。例如,如果您的打印机是通过串口连接的,那么您可能需要使用Zebra的SerialPort类来建立连接。在您的C#项目中,您需要添加SDK的引用。在弹出的对话框中,找到并选择您刚刚安装的Zebra SDK。这些指令通常使用ZPL(Zebra Programming Language)编写,这是一种专为Zebra打印机设计的标签编程语言。首先,您需要下载并安装Zebra的SDK。您可以在Zebra的官方网站上找到相应的下载链接。
2023-11-14 16:13:34
3582
2
原创 C#TableLayoutPanel
使用 TableLayoutPanel.RowStyles 和 TableLayoutPanel.ColumnStyles 属性调整行和列的大小和样式。首先在一行一列单元格内添加Panel控件,修改器属性ColumnSpan = 2 即可。1.单元格画线使用CellBorderStyle属性;可以使用百分比、像素值或自动大小来定义行和列的大小。2.合并单元格,例如一行一列和一行二列合并;
2023-11-10 17:10:04
2233
原创 cookie和session的详解与区别
cookie和session的详解与区别Cookie什么是CookieCookie属性Session什么是SessionSession的常用方法cookie和session区别Cookie什么是CookieCookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。举例来说, 一个 Web 站点可能会为每一个访问者产生一个唯一的ID, 然后以 Cooki
2021-08-11 22:03:11
302
原创 JVM学习
JVMJVM的主要组成部分类加载器———ClassLoaderJVM启动,程序开始执行时,负责将class字节码加载到JVM内存区域中运行时数据区———Runtime Data Area方法区、java堆、java栈、本地方法栈和程序计数器。执行引擎————Execution Engine负责执行class文件中包含的字节码指令本地库接口———Native Interface主要是调用C或C++实现的本地方法及返回结果运行时数据区方法区用于存储类结构信息的地方,包括类信息、
2021-06-03 16:51:32
171
原创 初识jQuery
jQuery简介jQuery与JavaScriptjOuey 是JavaScriprp 的程序库之一.它是 JavaScripi对象和实用函数的封装。jQuery由美国人John Resig于2006年创建jQuery是目前最流行的JavaScript程序库,它是对JavaScript对象和函数的封装它的设计思想是write less,do morejQuery与其他JavaScript库JavaScript是一种面向 Web的脚本语言。认识jQueryjQuery简介jQue
2020-07-09 18:14:57
276
原创 JavaScript操作DOM对象
DOM分为三类:DOM Core(核心),HTML-DOM和CSS-DOM。DOM CoreDOM Core不是JavaScript的专属品任何一种支持DOM的编程语言都可以使用它,它的用途不仅限于处理一种使用标记语言编写出来的文档,如HTML。HTML -DOM使用JavaScript和DOM为HTML文档编写脚本时,有许多专属的HIML -DOM 属性,HTML-DOM出现的比DOM Core更早.它提供了一些更简单的标记来描述各种HTML 元素的属性,如document forms.获取表
2020-07-02 17:49:01
162
原创 JavaScript操作BOM对象
windows对象浏览器对象模型(BOM )是JavaScript的组成之一,它提供了独立于内容与浏览器窗口进行交互的对象。使用BOM通常可实现如下功能:弹出新的浏览器窗口移动、关闭浏览器窗口及调整窗口大小在浏览器窗口中实现页面的前进、后退功能常用的属性history 有关客户访问过的URL的信息location 有关当前URL的信息screen 只读属性,包含有关客户端显示屏的信息在Javascript中,属性的语法格式如下:window.属性名=“属性值”常用
2020-06-28 19:46:21
99
原创 JavaScript基础
JavaScriptJavaScript :JavaScript 是脚本语言。JavaScript和ECMAScript通常被人用来表达相同的含义,但是JavaScript并不是这么一点含义,它是由ECMAScript 核心. DOM 文档对象模型. BOM 浏览器对象模型 这三部分组成。浏览器会在读取代码时,逐行地执行脚本代码。而对于传统编程来说,会在执行前对所有代码进行编译。JavaScript 主要用来在HIML页面中添加交互行为。JevaScript是一种脚本语言 ,语法和Jave类似。J
2020-06-23 17:01:10
303
原创 Java类之间关系
类与类之间的关系继承继承指的是- -个类(称为子类、子接口) 继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。实现指的是一个类实现接口的功能。依赖简单的理解,就是类A使用到了类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。关联关联体现的是两个类,或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友。这种关系比依赖更强,不存在依赖关系的偶然性,关系也不是临时性的,-般是长期性的,而双方的关系一般是平等的,关联可以是单向或者双
2020-06-04 19:47:41
166
原创 DAO模式
DAO模式DAO 是指位于业务逻辑和持久化数据之间实现对持久化数据的访问。通俗来讲,就是将数据库操作都封装起来。位于业务逻辑和持久化数据之间实现对持久化数据的访问DAO模式的作用隔离业务逻辑代码和数据访问代码隔离不同数据库的实现DAO模式的组成部分DAO接口: 把对数据库的所有操作定义成抽象方法,可以提供多种实现。DAO 实现类: 针对不同数据库给出DAO接口定义方法的具体实现。实体类:用于存放与传输对象数据。数据库连接和关闭工具类: 避免了数据库连接和关闭代码的重复使用,
2020-06-04 18:54:32
638
原创 开放-封闭原则
开放-封闭原则开放-封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。开放封闭原则是所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化、降低耦合,而开放封闭原则正是对这一目标的最直接体现。其他的设计原则,很多时候是为实现这一目标服务的,例如以Liskov替换原则实现最佳的、正确的继承层次,就能保证不会违反开放封闭原则。开放-封闭原则是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护、可扩展、可复用、灵活性好。开发人员应该仅对程序中呈
2020-06-02 17:56:40
291
原创 JDBC
JDBC概念JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。Java是通过JDBC 技术实现对各种数据库访问的,JIDBC 是Java 数据库连接技术的简称,它充当了Java 应用程序与各种不同数据库之间进行对话的媒介。它可以把数据持久保存,这就是一种持久化机制。这里涉及一个术语,持久化。 持久化是将程序中的数据在瞬时状态和持久状
2020-06-02 17:32:23
200
原创 MySQL存储过程
存储过程一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。优点:将重复性很高的一些操作,封装到一个存储过程中,简化了对这些SQL的调用批量处理:SQL+循环,减少流量,也就是“跑批”统一接口,确保数据的安全缺点存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。存储过程的性能调校与撰写,受限于各种数据库系统。存储过程的创建和调用
2020-05-31 15:35:08
149
原创 java 单一职责原则
单一职责原则应该有且仅有一个原因引起类的变更。就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。优点:类的复杂性降低,实现什么职责都有清晰明确的定义;可读性提高,复杂性减低,可读性当然提高;可维护性提高,可读性提高,可维护性当然提高;变更引起的风险减低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的
2020-05-28 18:53:28
233
原创 MySQL事务,视图,素引,备份和恢复。
事务MySQL 事务主要用于处理操作量大,复杂度高的数据。事务 是指将一系列数据操作捆绑成为一 个整体进行统一管理。 如果某一事务执行成功,则在该事务中进行的所有数据更改均会提交。成为数据库中的永久组成部分。如果事务执行时遇到错误且必须取消或回滚,则数据将全部恢复到操作前的状态,所有数据的更改均被清除事务是必须满足4个条件:*原子性:*一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。*
2020-05-28 17:38:23
217
上位机+ 批量条码获取 智能扫码 的 条码 +条码上传MES 验证 并且显示条码失败 图片 位置
2025-06-04
拍卖管理系统(web)
2020-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅