C#调用非受管DLL:API参数传递与列集实战

本文详述在C#中通过平台调用服务(P/Invoke)使用DllImport调用非受管DLL的方法。重点讲解如何正确处理输入输出字符串(StringBuilder与MarshalAs)、结构体传递(StructLayout与ref关键字)以及复杂的回调函数处理(委托与GCHandle指针管理),确保跨语言调用的正确性与内存安全。

C# AccessHelper:封装OleDb数据库操作工具类

本文提供一个C# AccessHelper辅助类,通过静态方法封装对Access数据库的增删改查操作。该类利用System.Data.OleDb命名空间,实现了数据库连接管理、SQL语句执行以及返回DataSet、DataTable和DataView等数据结果集的方法,便于在C#项目中简化数据库交互逻辑。

C#调用Word内置对话框:Show方法与动态类型用法

本文介绍在C#项目中通过VSTO或Office互操作调用Word内置对话框的方法。核心步骤是使用WdWordDialog枚举获取Dialog对象,并调用Show方法弹出界面。针对需访问Name等后期绑定属性的场景,提供使用dynamic关键字及System.Reflection反射机制的完整代码示例。

C#与SQL实现字符串相似度算法对比与应用

本文分享两种主流数据库中计算字符串相似度的核心方案。首先详解C#中基于动态规划的Levenshtein距离算法,提供完整代码及Min辅助函数的实现逻辑;其次介绍SQL Server环境下通过游标与临时表匹配子串的计算方法。两者分别适用于后端业务处理与数据库直接查询场景,开发者可根据实际需求选择部署路径。

C#使用JavaScriptSerializer反序列化JSON字符串

本文介绍在C#中利用System.Web.Script.Serialization命名空间下的JavaScriptSerializer类,将外部获取的JSON字符串自动映射为强类型对象的具体操作。通过定义与JSON结构匹配的实体类(注意属性名需严格对应),仅需一行Deserialize代码即可完成数据转换,适用于快递查询等场景的API数据提取。

C#使用OpenXml SDK向Word文档动态添加表格

本文介绍利用C#和OpenXml SDK在Word文档中创建带边框的表格。通过定义TableGrid、设置TableProperties边框属性并遍历数据追加TableRow,实现动态生成包含表头与内容的完整表格结构。

C#使用OpenXml SDK向Word文档动态添加表格

C#实用自定义函数:数组拼接、时间戳转换与安全随机数

本文整理了C#开发中三个高频实用的自定义函数。涵盖将字符数组按指定分隔符拼接为字符串的方法,实现DateTime到Unix时间戳(秒级)的精确转换逻辑,以及利用RNGCryptoServiceProvider生成加密级安全随机数的实现方案,帮助开发者减少重复代码并提升代码健壮性。

C#多态、重载与重写的核心区别解析

本文深入解析C#中多态、重载与重写的概念及核心区别。重点说明重写需使用virtual和override修饰符实现基类覆盖,重载需同名不同参,而多态则是面向对象基于继承实现的动态行为机制。通过代码示例厘清三者逻辑,帮助初学者构建清晰的C#编程思维。

C#中委托与事件的核心区别及代码实现

本文深入解析C#中委托(Delegate)与事件(Event)的区别。委托本质上是一个类,用于封装方法;而事件是委托类型的变量,提供了更好的封装性。文章通过具体代码展示了如何声明委托、使用Invoke或括号语法执行方法,以及如何通过+=和-=注册、注销事件回调。此外,还介绍了标准的EventHandler委托在事件处理中的便捷用法,帮助开发者理解两者的底层机制与实际应用场景。

C#中事件的动态调用实现方法

本文介绍C#中如何通过非标准手段动态调用事件。由于EventInfo.GetRaiseMethod无法获取事件触发器,我们可以通过反射获取事件字段,得到MulticastDelegate并遍历其调用列表(GetInvocationList),最终利用MethodInfo.Invoke逐个触发订阅的方法,以此解决C#编译器未暴露RaiseMethod元数据的问题。

C#使用JavaScriptSerializer解析JSON实例

本文介绍在C#中如何使用JavaScriptSerializer类解析JSON数据。通过定义与JSON结构匹配的类,并利用Deserialize方法将字符串转化为对象,从而便捷地提取键值对信息。操作前需确保项目引用System.Web.Extensions库并配置正确的.NET Framework版本。