C# params 可变参数用法详解与注意事项

本文介绍 C# 中 params 关键字的用法,用于定义接受可变数量参数的方法。通过 string[] 示例展示其调用方式,并列出三条关键限制:必须为一维数组、需位于参数列表末尾且仅能使用一次。

C# 使用泛型委托与反射将 DataTable 高效转换为实体集合

本文介绍在 C# 中将 DataTable 数据行快速映射为自定义实体类集合的方法。针对传统字符串赋值无法处理非 String 类型(如 int、bool)的缺陷,文章展示了利用泛型委托配合 MakeGenericType 动态构建类型,并结合 Delegate.DynamicInvoke 实现类型自动转换的核心代码逻辑,提供了一套高效且通用的 ORM 轻量级实现思路。

C# WinForms使用IrisSkin2为窗体添加皮肤

本文介绍如何在C# WinForms应用程序中,利用第三方控件IrisSkin2(SkinEngine)实现程序界面的换肤功能。主要涵盖将DLL注册至工具箱、配置.ssk皮肤文件路径以及在代码中调用加载方法的完整步骤,帮助开发者快速美化桌面应用外观。

C# WinForms使用IrisSkin2为窗体添加皮肤

C# 适配器模式详解:让不兼容的接口协同工作

本文介绍 C# 中的适配器模式,通过结构图与完整代码演示如何将原本因接口不匹配而无法使用的 Adaptee 类转化为 Target 接口的实现。适配器继承目标接口并持有适配者实例,重写 Request 方法以调用 SpecialRequest,从而在保持客户端代码不变的前提下实现功能复用。

C# 适配器模式详解:让不兼容的接口协同工作

C# 完美截断字符串代码(中文+非中文)

本文提供一段 C# 静态扩展方法 Truncation,用于在处理中英文混合字符串时实现精准截断。代码通过判断字符 Unicode 值大于 128 识别中文,自动调整截取长度,确保不截断半个中文字符,并追加省略号,满足 Web 展示需求。

C#条件编译指令详解与实战应用

C#通过预处理指令实现代码的条件编译,无需运行即可根据符号定义决定代码块的包含与否。本文详细解析#define、#undef、#if、#elif、#else和#endif的核心用法,结合嵌套逻辑与#warning、#error示例,展示如何在构建Demo版本或Debug环境时自动化管理代码分支,提升开发效率与构建安全性。

C# DateTime 时间操作常用方法与格式化指南

本文整理了 C# 中 System.DateTime 类的常用操作方法。涵盖时间对象的实例化、年月日时分秒等属性获取、ToLong/ShortDateString 等格式转换,以及本周、本月起止日期等复杂时间计算逻辑,附带详细的标准自定义格式字符说明,帮助开发者快速处理时间数据。

C# 使用 XmlDocument 类读写 XML 文档详解

本文介绍 C# 中使用 XmlDocument 类加载、查询和创建 XML 文档的方法。涵盖从文件、流或字符串加载 XML,利用 XPath 进行节点筛选与属性读取,以及构建包含属性和文本的复杂 XML 结构。需注意该方式将 XML 全部载入内存,适合中小规模数据。

C# DataTable 删除行后访问报异常的解决方案

在C#中调用DataTable.Rows.Delete()仅标记行为删除状态而非物理移除,直接遍历或访问会导致异常。解决此问题需区分两种场景:若需彻底删除,应配合使用AcceptChanges()或改用RemoveAt/Remove;若只需筛选可用数据,应通过判断Rows[i].RowState不等于DataRowState.Deleted来过滤。本文提供代码示例说明如何安全遍历和删除数据。

C# 中实现 10 进制与 16 进制互相转换的方法

本文介绍了在 C# 编程中实现十进制与十六进制互相转换的两种方法。第一种利用内置的 `ToString` 和 `Convert.ToInt32` 进行高效转换;第二种通过自定义函数解析十六进制字符串并处理前缀校验,适用于需要更精细控制的场景。