# Chet.Utils **Repository Path**: qiect/Chet.Utils ## Basic Information - **Project Name**: Chet.Utils - **Description**: 一个轻量且实用的 C# 工具类库,旨在为日常 .NET 开发提供常用的辅助函数与扩展方法,帮助减少样板代码、提高开发效率。本仓库包含字符串处理、日期时间工具、JSON 序列化、文件与 IO、加密辅助、HTTP 帮助函数、验证与随机工具等一系列实用模块。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-01-06 - **Last Updated**: 2026-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Chet.Utils ## 概述 Chet.Utils 是一个为 .NET 开发提供全面辅助工具的类库。该项目旨在简化代码编写过程中的常见操作,提高开发效率,减少重复代码。所有扩展方法和帮助类都经过精心设计,遵循 .NET 最佳实践,提供完整的 XML 文档注释。 ## 特性 - 🚀 **高性能** - 经过优化的实现,减少不必要的内存分配 - 🔒 **安全可靠** - 完善的空值检查和异常处理 - 📖 **完整文档** - 所有方法都有详细的 XML 注释和使用示例 - 🧪 **单元测试** - 核心功能都有对应的单元测试覆盖 - 🎯 **易于使用** - 直观的 API 设计,符合 .NET 命名规范 ## 主要功能 ### 扩展方法 | 扩展类 | 说明 | 详细文档 | | ------------------------ | ----------------------------------------------- | ------------------------------------------ | | **BoolExtensions** | Bool 扩展方法,提供基础判断、逻辑运算、类型转换、条件执行等功能 | [查看详情](.docs/Extensions/BoolExtensions.md) | | **DataTableExtensions** | DataTable 扩展方法,提供数据转换、查询、操作、序列化等功能 | [查看详情](.docs/Extensions/DataTableExtensions.md) | | **DateTimeExtensions** | DateTime 扩展方法,提供日期判断、格式化、计算、转换等功能 | [查看详情](.docs/Extensions/DateTimeExtensions.md) | | **DecimalExtensions** | decimal 扩展方法,提供数值判断、数学运算、格式化、类型转换等功能 | [查看详情](.docs/Extensions/DecimalExtensions.md) | | **DoubleExtensions** | double 扩展方法,提供数值判断、数学运算、格式化、类型转换等功能 | [查看详情](.docs/Extensions/DoubleExtensions.md) | | **EnumExtensions** | Enum 扩展方法,提供枚举判断、转换、描述获取、标志操作等功能 | [查看详情](.docs/Extensions/EnumExtensions.md) | | **EnumerableExtensions** | IEnumerable/ICollection 扩展方法,提供集合判断、转换、分页、统计等功能 | [查看详情](.docs/Extensions/EnumerableExtensions.md) | | **FileExtensions** | 文件扩展方法,提供文件读写、判断、信息获取、哈希计算等功能 | [查看详情](.docs/Extensions/FileExtensions.md) | | **FloatExtensions** | float 扩展方法,提供数值判断、数学运算、格式化、类型转换等功能 | [查看详情](.docs/Extensions/FloatExtensions.md) | | **IntExtensions** | int 扩展方法,提供数值判断、数学运算、格式化、中文转换等功能 | [查看详情](.docs/Extensions/IntExtensions.md) | | **StreamExtensions** | Stream 扩展方法,提供流读写、转换、压缩、哈希计算等功能 | [查看详情](.docs/Extensions/StreamExtensions.md) | | **StringExtensions** | string 扩展方法,提供空值判断、正则验证、类型转换、编码解码等功能 | [查看详情](.docs/Extensions/StringExtensions.md) | ### 帮助类 | 帮助类 | 说明 | 详细文档 | | --------------------- | ---------------------------------------- | ------------------------------------ | | **ApplicationHelper** | 应用程序帮助类,提供进程管理、内存优化、系统信息获取等功能 | [查看详情](.docs/Helpers/ApplicationHelper.md) | | **DataTableHelper** | 数据表帮助类,提供数据透视、数据分析、数据清洗等高级功能 | [查看详情](.docs/Helpers/DataTableHelper.md) | | **FileHelper** | 文件帮助类,提供文件监控、临时文件管理、文件比较等高级功能 | [查看详情](.docs/Helpers/FileHelper.md) | | **HttpClientHelper** | HTTP 客户端帮助类,提供重试机制、超时控制、认证管理等功能 | [查看详情](.docs/Helpers/HttpClientHelper.md) | | **ReflectHelper** | 反射帮助类,提供类型检查、属性操作、方法调用、表达式树等功能 | [查看详情](.docs/Helpers/ReflectHelper.md) | | **RegexHelper** | 正则表达式帮助类,提供常用验证、匹配、替换、提取等功能 | [查看详情](.docs/Helpers/RegexHelper.md) | | **StopwatchHelper** | 计时帮助类,提供高精度计时、性能统计、基准测试等功能 | [查看详情](.docs/Helpers/StopwatchHelper.md) | | **TaskHelper** | 任务帮助类,提供超时控制、重试机制、并行处理、任务调度等功能 | [查看详情](.docs/Helpers/TaskHelper.md) | | **UnitHelper** | 单位帮助类,提供长度、货币、质量、角度等多种单位转换功能 | [查看详情](.docs/Helpers/UnitHelper.md) | | **WebSocketHelper** | WebSocket 帮助类,提供客户端/服务端连接管理、消息收发、心跳检测等功能 | [查看详情](.docs/Helpers/WebSocketHelper.md) | ## 安装 ### NuGet 包管理器 ```powershell Install-Package Chet.Utils ``` ### .NET CLI ```bash dotnet add package Chet.Utils ``` ### PackageReference ```xml ``` ## 快速开始 ### 使用扩展方法 ```csharp using Chet.Utils; // 字符串扩展 string email = "test@example.com"; bool isValid = email.IsEmail(); // true // 日期扩展 DateTime date = DateTime.Now; bool isWeekend = date.IsWeekend(); // 判断是否周末 string formatted = date.ToChineseDateString(); // "二〇二四年一月一日" // 集合扩展 var list = new List { 1, 2, 3, 4, 5 }; var page = list.GetPage(1, 2); // 分页获取数据 bool isEmpty = list.IsNullOrEmpty(); // 判断是否为空 // 数值扩展 int value = 12345; string thousands = value.ToThousandsString(); // "12,345" string chinese = value.ToChineseNumber(); // "一万二千三百四十五" ``` ### 使用帮助类 ```csharp using Chet.Utils.Helpers; // HTTP 客户端 var httpHelper = new HttpClientHelper(); var response = await httpHelper.GetAsync("https://api.example.com/data"); // 正则表达式 bool isPhone = RegexHelper.IsMobilePhone("13800138000"); var emails = RegexHelper.ExtractEmails("联系邮箱: test@example.com"); // 计时器 var elapsed = StopwatchHelper.Measure(() => { // 要测试的代码 }); Console.WriteLine($"执行时间: {elapsed.TotalMilliseconds}ms"); // WebSocket 客户端 var wsClient = new WebSocketHelper(); wsClient.OnMessageReceived += (sender, e) => Console.WriteLine(e.Message); await wsClient.ConnectAsync(new Uri("ws://localhost:8080")); await wsClient.SendMessageAsync("Hello, World!"); ``` ## 系统要求 - .NET 8.0 或更高版本 - .NET Standard 2.0(部分功能) ## 版本更新 ### v1.5.0 (当前版本) **新功能** 重构所有扩展类和帮助类,使其更通用、更易用 ### v1.4.0 **新增功能** - ✨ 添加 WebSocket 帮助类,包含客户端和服务端实现 - 支持连接管理、消息收发、心跳检测、自动重连 - 支持消息队列、广播、组播等功能 - ✨ StringExtensions 类扩展了部分方法 **改进** - 📝 完善所有扩展类和帮助类的 XML 文档注释 - 📝 更新所有功能文档,添加详细的使用示例 - 🔧 优化代码结构,提高代码可读性 ### v1.3.0 **新增功能** - ✨ 添加 ApplicationHelper 应用程序帮助类 - ✨ 添加 ReflectHelper 反射帮助类 - ✨ 添加 StopwatchHelper 计时帮助类 - ✨ 添加 TaskHelper 任务帮助类 - ✨ 添加 UnitHelper 单位帮助类 ### v1.2.0 **新增功能** - ✨ 添加 DataTableHelper 数据表帮助类 - ✨ 添加 FileHelper 文件帮助类 - ✨ 添加 RegexHelper 正则表达式帮助类 ### v1.1.0 **新增功能** - ✨ 添加 HttpClientHelper HTTP 客户端帮助类 - ✨ 完善扩展方法类 ### v1.0.0 **初始版本** - 🎉 基础扩展方法类(Bool、DateTime、Decimal、Double、Float、Int、String、Enumerable) - 🎉 基础帮助类 ## 贡献指南 欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。 ## 许可证 本项目采用 MIT 许可证。详见 [LICENSE](../LICENSE) 文件。 ## 联系方式 如有问题或建议,请通过以下方式联系: - 提交 [GitHub Issue](https://github.com/qiect/Chet.Utils/issues) - 发送邮件至: